zoukankan      html  css  js  c++  java
  • 【开发日志】ubuntu 16 下 MySQL Access denied for user 'root'@'localhost'

    问题背景

    在 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 可分别取通配符 *。

  • 相关阅读:
    机器学习之线性回归
    斯坦福机器学习【5】生成学习算法(高斯判别与朴素贝叶斯)
    网络编程
    正则表达式
    Mysql
    python爬虫
    nginx
    maven基础
    sping入门
    河北省重大技术需求征集八稿第一天
  • 原文地址:https://www.cnblogs.com/backwords/p/15172880.html
Copyright © 2011-2022 走看看