我的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;
输出为:
可以看到:root用户实际上使用auth_socket插件进行了身份验证。要将根帐户配置为使用密码进行身份验证,运行以下ALTER USER命令。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
再次检查每个用户使用的身份验证方法,以确认root不再使用auth_socket插件进行身份验证:
详细如下:
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)
然后运行项目就可以正常启动了。
评论