Centos7忘记mysql的root用户密码

1、先停止mysql服务

​[root@CentOS ~]# ps -ef | grep mysql
root       5365      1  0 15:47 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/CentOS.pid
mysql      5452   5365  4 15:47 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=CentOS.err --pid-file=/usr/local/mysql/data/CentOS.pid
root       5485   5210  0 15:47 pts/0    00:00:00 grep --color=auto mysql
[root@CentOS ~]# service mysql stop    # 停止 mysql 服务
Shutting down MySQL.. SUCCESS! 
[root@CentOS ~]# 

2、使用 mysqld_safe 来启动mysql服务

​[root@CentOS ~]# cd /usr/local/mysql/bin/
[root@CentOS bin]# ./mysqld_safe --skip-grant-tables
2018-03-02T07:49:52.491532Z mysqld_safe Logging to '/usr/local/mysql/data/CentOS.err'.
2018-03-02T07:49:52.528458Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

在执行 ./mysqld_safe --skip-grant-tables 后终端窗口会暂停输出。其中 --skip-grant-tables 选项表示MySql服务器不加载权限判断,任何用户都能访问数据库。

3、然后另外打开一个终端窗口,免密码登录mysql

​[root@CentOS bin]# ./mysql -u root -p
Enter password:                     # 此处为空密码,直接回车即可
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

4、重置 root 密码

​mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');    # 将 root 密码修改为 'root'
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> 

修改密码完成后,将使用 mysqld_safe --skip-grant-tables 命令启动的终端窗口关闭,接下来就可以使用新设置的密码登录Mysql了。

猜你喜欢

转载自www.cnblogs.com/d0usr/p/11211002.html