java 链接mysql出现Access denied for user ‘root’@'localhost’问题的解决(mysql为5.7)
背景描述:
今天将台式机javaweb项目导入笔记本eclipse,在db.properties配置文件修改username和password为本机mysql设置后,运行项目出现该错误。
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/carrent?serverTimezone=UTC&useSSL=false
username=root
password=123456
解决:
- 对root用户进行授权(对我的情况没有效果)
grant all privileges on *.* to root@localhost identified by '你为root设置好的密码';
回车之后再执行
flush privileges;
- 修改密码(有效)
mysql5.7之前的版本执行
update user set password=password("新密码") where user="root";
mysql5.7之后的版本执行
update mysql.user set authentication_string=password('新密码') where user='root' and Host = 'localhost';
说明:mysql5.7的mysql数据库下user表中已经没有Password字段了,其对用户(root)密码加密后存储于authentication_string字段中。