MySQL忘記root密碼不重啟mysqld的方法
阿新 • • 發佈:2018-08-01
auth clear acl 相關 names monit ffi ora warn MySQL忘記root密碼不重啟mysqld的方法
1、首先得有一個可以擁有修改權限的mysql數據庫賬號,當前的mysql實例賬號(較低權限的賬號,比如可以修改zabbix數據庫)或者其他相同版本實例的賬號。把 data/mysql 目錄下面的user表相關的文件復制到 data/zabbix 目錄下面。
[root@restoredb mysql]# cp mysql/user.* test/
[root@restoredb mysql]# chown mysql.mysql test/user.*
2、使用另一個較低權限的賬號鏈接數據庫,設置 zabbix 數據庫中的 user 存儲的密碼數據。
[root@restoredb mysql]# mysql -uzabbix -pzabbixpasswd -A
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 1180
Server version: 5.7.22-log 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> use zabbix;
Database changed
mysql> update user set authentication_string=password(‘zabbixpasswd‘) where user=‘root‘;
Query OK, 2 rows affected, 1 warning (0.04 sec)
Rows matched: 2 Changed: 2 Warnings: 1
3、把修改後的user.MYD和user.MYI復制到mysql目錄下,記得備份之前的文件。
mv mysql/user.MYD mysql/user.MYD.bak
mv mysql/user.MYI mysql/user.MYI.bak
cp zabbix/user.MY* mysql/
chown mysql.mysql mysql/user.*
4、kill -SIGHUP
[root@restoredb mysql]# pgrep -n mysql
31650
[root@restoredb mysql]#
[root@restoredb mysql]# kill -SIGHUP 31650
5、測試
[root@restoredb mysql]# mysql -uroot -pzabbixpasswd -A
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 1190
Server version: 5.7.22-log 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>
MySQL忘記root密碼不重啟mysqld的方法