首页 > 数据库技术 > 详细

【开发日志】ubuntu 16 下 MySQL Access denied for user 'root'@'localhost'

时间:2021-08-22 21:23:58      阅读:23      评论:0      收藏:0      [点我收藏+]

问题背景

在 ubuntu 16 系统中部署 Tomcat 发布 SpringBoot 项目,运行起来后,前端网页访问后台出现报错:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘.

解决方法

因为密码是没问题的,所以不考虑密码错误的原因。
经搜索,再此篇文章找到:https://blog.ndk.name/change-mysql-server-authentication-plugin-for-root-user/ 一种可能情况:MySQL 的默认授权模式为 auth_socket 或者是 unix_socket 而不是密码形式进行登录授权的,所以要改变授权方式。
查看 MySQL 系统用户表:

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

技术分享图片

修改 plugin 字段为 mysql_native_password:

 UPDATE mysql.user SET plugin = ‘mysql_native_password‘, authentication_string = PASSWORD(‘your_password‘) WHERE User = ‘pc‘;

技术分享图片

之后执行语句刷新一下
FLUSH PRIVILEGES;

注意我没有修改 root 用户,而是新建了两个用户,修改了这两个用户的 plugin 字段。
补充:添加用户方法:

 CREATE USER ‘test‘@‘localhost‘ IDENTIFIED WITH mysql_native_password;

通过修改好 user 的 plugin 字段类型,设置好密码后, 项目就可以顺利访问到数据库了。问题解决。另外如果是新创建的用户,记得授予对要访问的数据库的权限:

grant all privileges on database_name.table_name to ‘test‘@‘localhost‘;

database_name 和 table_name 可分别取通配符 *。

【开发日志】ubuntu 16 下 MySQL Access denied for user 'root'@'localhost'

原文:https://www.cnblogs.com/backwords/p/15172880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!