MySQL忘记root密码的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL忘记root密码的解决办法相关的知识,希望对你有一定的参考价值。

使用mysql时,如果忘记了其他用户的密码,可以使用root用户重新设置,但是如果忘记了root的密码,就要采用特殊的方法进行操作。
直接修改授权表可以修改root的密码,下面详细介绍步骤,以mysql5.7为例。

  1. 停止mysqld服务进程
    [[email protected] ~]# systemctl stop mysqld.service 
    [[email protected] ~]# netstat -ntpln | grep 3306  //检测mysql是否已经启动
  2. 使用mysqld结合skip-grant-tables启动数据库,它的作用是用户登录时不使用授权表,所以用户可以不使用密码直接登录。
    [[email protected] ~]# mysqld --skip-grant-tables&
    [[email protected] ~]# netstat -ntpul | grep 3306  //检测mysql是否已经启动
    tcp6       0      0 :::3306                 :::*                    LISTEN      1561/mysqld 
  3. 可以不使用密码直接登录到mysql,使用update修改root密码。
[[email protected] ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.17 Source distribution

mysql> update mysql.user set authentication_string=password(‘123abc‘) where user=‘root‘; //修改root密码为123abc
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

4.刷新数据库,使用update修改密码后,只是在数据库中进行了修改,内存中的数据并没有修改。flush privileges 的作用就是把当前user和privilege表中的用户信息和权限设置从mysql库提取到内存里。mysql用户数据和权限修改后,希望在不重启mysql服务的情况下直接生效,就需要执行以下命令。

mysql> flush privileges;      //刷新数据库
Query OK, 0 rows affected (0.01 sec)

5.使用新密码做登录测试,登录成功说明修改成功。

[[email protected] ~]# mysql -uroot -p123abc   //登录mysql
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.17 Source distribution

这里注意登录时-p后面直接跟上登录密码,不能有空格,否则就会有错误。

以上是关于MySQL忘记root密码的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

MySQL忘记root密码解决办法

Centos7 之 MariaDB(Mysql) root密码忘记的解决办法

MySQL忘记root密码的解决办法

mysql 忘记root密码的解决办法

linux下mysql的忘记root密码的解决办法

linux mysql下忘记root密码解决办法