原创

java.sql.SQLException: Access denied for user 'root'@'localhost'. Could not create connection to database server错误解决


我的Spring Boot启动应用程序在本地系统(即Windows 10)上正常运行,但是当我尝试在本地安装MySql的Ubuntu 18.04 上部署该应用程序时,它在启动应用程序时抛出错误:

Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost',Could not create connection to database server.

这实际上是MySQL对root用户的身份验证方式不接受密码方式造成的。 使用以下命令检查每个MySQL用户帐户使用的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user; 

输出为:
MySQLError1.png

可以看到:root用户实际上使用auth_socket插件进行了身份验证。要将根帐户配置为使用密码进行身份验证,运行以下ALTER USER命令。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 
FLUSH PRIVILEGES;

再次检查每个用户使用的身份验证方法,以确认root不再使用auth_socket插件进行身份验证: MySQLError2.png 详细如下:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '431241wjw';  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

然后运行项目就可以正常启动了。

SpringBoot
MySQL
环境配置
  • 作者:Daozhi(联系作者)
  • 发表时间:2020-03-01 23:16
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论