1. 程式人生 > >忘記MySQL root密碼,如何不重啟修改

忘記MySQL root密碼,如何不重啟修改

權限 p12 code database 行修改 註意 mark 文件拷貝 需要

說個前提:mysqld可以處理kill命令發送的信號,如SIGHUP、SIGTERM,SIGHUP信號產生的行為類似於flush命令。

不重啟找回root密碼首先需要有個較低權限的賬號,比如可以修改test庫,或者可以操作任意業務數據庫的賬號。這裏借助test庫進行修改。

1、將mysql.user表的相關文件拷貝到test庫的數據目錄下,並修改權限:
cd  /data/database/mysql
cp mysql/user.* test/ 
chown mysql:mysql -R test
2、利用普通賬號修改test.user 表:
mysql -uadmin -p123456 -S /tmp/mysql.sock 
mysql> update user set Password=password(‘dd8022bf7a0d1f24‘) where User=‘root‘;
3、將修改後的test.user表覆蓋為mysql.user表,註意備份舊的mysql.user表:
cd  /data/database/mysql
mv  test/user.*  mysql/
5、給mysqld 進程 SIGHUP 信號,刷新權限:
kill -SIGHUP  ${mysqld_pid}

忘記MySQL root密碼,如何不重啟修改