mysql忘記root密碼

mysql忘記了超級用戶管理密碼,可以利用重新啓動mysql進程的時候帶 --skip-grant-tables參數來啓動數據庫,並空密碼登錄。這個就是相當於是數據庫第一次啓動的時候。隨後可以查看mysql.user表裏面的超級用戶,以及修改超級用戶的密碼

1# 關閉MYSQL instance,或者殺死進程

2# 重新啓動mysql,帶--skip-grant-tables語句

[mysql@mysql01 my.cnf.d]$ mysqld_safe --defaults-file='/data/mysqldata/3306/my.cnf'  --skip-grant-tables &
[1] 32530
[mysql@mysql01 my.cnf.d]$ 180828 19:02:13 mysqld_safe Logging to '/data/mysqldata/3306/data/../mysql-error.log'.
180828 19:02:13 mysqld_safe Starting mysqld daemon with databases from /data/mysqldata/3306/data

[mysql@mysql01 my.cnf.d]$ 

3# 空密碼登錄MySQL

[mysql@mysql01 my.cnf.d]$ msyql -S /data/mysqldata/3306/mysql.sock 
bash: msyql: command not found...
[mysql@mysql01 my.cnf.d]$ mysql -S /data/mysqldata/3306/mysql.sock 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.31-log Source distribution

Copyright (c) 2000, 2016, 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.

(root@localhost)[(none)]> 

4# 修改mysql.user表

(root@localhost)[(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
(root@localhost)[mysql]> 
(root@localhost)[mysql]> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *A0F874BC7F54EE086FCE60A37CE7887D8B31086B |
+------+-----------+-------------------------------------------+
1 row in set (0.00 sec)

(root@localhost)[mysql]> update user set password=password('password123') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

(root@localhost)[mysql]> 

5# 正常關閉數據庫

[mysql@mysql01 my.cnf.d]$ mysqladmin -S /data/mysqldata/3306/mysql.sock -uroot -p'password123' shutdown
Warning: Using a password on the command line interface can be insecure.
180828 19:04:54 mysqld_safe mysqld from pid file /data/mysqldata/3306/mysql.pid ended
[1]+  Done                    mysqld_safe --defaults-file='/data/mysqldata/3306/my.cnf' --skip-grant-tables
[mysql@mysql01 my.cnf.d]$ 

6# 正常開啓數據庫

[mysql@mysql01 my.cnf.d]$ mysqld_safe --defaults-file='/data/mysqldata/3306/my.cnf'  &
[1] 33094
[mysql@mysql01 my.cnf.d]$ 180828 19:05:04 mysqld_safe Logging to '/data/mysqldata/3306/data/../mysql-error.log'.
180828 19:05:04 mysqld_safe Starting mysqld daemon with databases from /data/mysqldata/3306/data

[mysql@mysql01 my.cnf.d]$

7# 正常登錄數據庫

[mysql@mysql01 my.cnf.d]$ mysql -uroot -S '/data/mysqldata/3306/mysql.sock' -p'password123'
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 1
Server version: 5.6.31-log Source distribution

Copyright (c) 2000, 2016, 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.

(root@localhost)[(none)]> 

至此mysql的root密碼修改完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章