Mysql root 账号如何重置密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql root 账号如何重置密码相关的知识,希望对你有一定的参考价值。

参考技术A

今日分享主题:mysql root账号如何重置密码

前两天发现我的 mysql 数据库突然无法登录,但是上周还使用得是正常的,经过一番查找还是没有找到问题的原因。

DBA 给我的解释:我怀疑主机重启后,某些文件(user.*)就丢了,不知道啥原因。我记得之前你也是重启后遇到过相同问题。

既然这样,只好重置 root 账号密码了。具体操作步骤如下


Step1:停止 mysql 服务

命令:systemctl stop mysqld #停掉MySQL

命令:systemctl status mysqld #查看状态

Step2:修改/etc/my.cnf配置,添加 skip_grant_tables=1 启动设置,注意要在[mysqld]行所在的下面添加。


Step3:重启 mysql 并查看状态

systemctl start mysqld
systemctl status mysqld


Step4:使用 mysql 命令连接到 mysql 服务器,重新设置root密码

use mysql #进入mysql数据库 select * from user; #查询user表 查看是否有root账号,如果没有就需要操作如下insert into 语句:

如果 user 表里面有 root 账号,则直接可以重置密码。

命令如下:update user set authentication_string=password(\'test123\') where user=\'root\'

FLUSH PRIVILEGES; #刷新授权列表

再输入 exit 退出mysql


Step5:将步骤2中/etc/my.cnf 文件中添加的 skip_grant_tables=1 启动设置去掉,再执行一个systemctl restart mysql 命令重启 mysql 服务。


Step6:使用重置后的密码再登录时问题解决。

mysql重置密码

  • mysql 登录的时候, access denied, 记得之前已经修改过了host为%, 任何IP都可以登录, 之前root账号是可以登录的, 这次登录不上去了. 也没找到原因, (可能是密码记错了, 初始密码好像是123456??)只能是修改root 的密码了. 接下来说一下如何修改root密码
  • Ubuntu 虚拟机:  
    cd /etc/mysql/mysql.conf.d
    vim mysqld.cnf
    在[mysqld] 下面加上 skip-grant-tables
    重启mysql
    mysql -uroot -p 回车就可登录, 然后修改密码
    update mysql.user set authentication_string=password(‘你的密码‘) where user=‘root‘;
    flush privileges;  # 不刷新也能生效, 这个加不加都行
    记得删除之前添加的skip-grant-tables 或者注释掉, 然后重启mysql

     

以上是关于Mysql root 账号如何重置密码的主要内容,如果未能解决你的问题,请参考以下文章

mysql重置密码,忘记密码,重置root密码,重置mysql密码

mysql重置密码

windows 下重置 mysql 的 root 密码

mysql root 密码重置

MySQL8.0修改root账号的密码

mysql5.7 root密码重置