Access denied for user ‘root‘@‘localhost‘ (using password: YES)系列问题

Posted 364.99°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Access denied for user ‘root‘@‘localhost‘ (using password: YES)系列问题相关的知识,希望对你有一定的参考价值。

1.bug描述

登录mysql,报错如下:

2.解决过程

  • 修改配置文件为无密码登录:

    vim /etc/my.cnf
    

    在[mysqld]下一行添加,保存退出

    skip-grant-tables
    
  • 重启mysql,并登录

    sudo systemctl restart mysqld
    

  • 重置密码:
    刷新权限

    flush privileges;
    

    重置root用户密码

    set password for 'root'@'localhost' = password('admin');
    

    结果报错:

  • 赶紧检查我的用户表的用户

    如上图所示,没有root用户

  • 新建root用户,并设置好密码

    create user 'root'@'localhost' identified by '123456';
    

    然后报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    那么修改密码策略和最短长度:

    set global validate_password_policy=0;
    set global validate_password_length=1;
    

    再次创建用户设置密码,提示失败:

    可能是上一步创建了root用户,直接删除干净:

    drop user 'root'@'localhost'
    flush privileges;
    

    tn的,终于创建成功了

    创建成功之后,记得刷新权限:

    flush privileges;
    

    然后exit退出

  • 修改配置文件,开启密码验证
    就是注释掉刚才加载配置文件中的

    skip-grant-tables
    

    重启mysql,并登录

    sudo systemctl restart mysqld
    

    终于登录成功了

本地远程连接mysql

以上是关于Access denied for user ‘root‘@‘localhost‘ (using password: YES)系列问题的主要内容,如果未能解决你的问题,请参考以下文章

ERROR 1142 (42000): GRANT command denied to user ** 或 ERROR 1045 (28000): Access denied for user 

Access denied for user XX

ERROR 1045 (28000): Access denied for user ‘root‘@

MySql access denied for user错误

ERROR 1045 (28000): Access denied for user ‘roort‘

Mysql Access denied for user 'root'