错误:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
原因是:
是因为数据库中用户密码的问题。所以我们可以跳过数据权限验证,重新设置一下
一、修改my.ini配置文件
- 停止mysql服务
方法:
# windows
net stop mysql
# linux
service mysqld stop
- 设置跳过验证权限语句
在my.ini
文件,[mysqld]下添加一行,使其登录时跳过权限检查
skip-grant-tables
跳过数据库权限验证
注意开启用 去掉#,设置好密码后,就添加 号#
二、设置密码与权限
- 重载配置,重启服务
- 进入终端,进入mysql
#1进入mysql:
mysql -uroot
#2先刷新权限:
flush privileges;
#3 新建用户和ip设置只允许指定ip(这里先设置所有ip都可以进入)和本机才可以访问数据库
grant all privileges on *.* to 'root'@'%' identified by '你的密码' with grant option;
#4再次刷新:
flush privileges;
- 重载配置,重启服务
注意后面基本加 ; ,比如会出现 ->
三、springboot连接5.7
- 配置 application.yml
spring:
## 数据库mysql配置 5.7.4
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip地址:3306/数据库?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: 你的密码
- 配置 pom.xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
四、额外配置
- wait_timeout : 服务器关闭非交互连接之前等待活动的秒数
- interactive_timeout :服务器关闭交互式连接前等待活动的秒数。
wait_timeout=86400
interactive_timeout=86400
如果是5.6需要添加一个驱动
至此mysql5.7连接成功,如果有帮助到大家,记得点赞,谢谢