1. 程式人生 > 其它 >MySQL忘記密碼解決方案

MySQL忘記密碼解決方案

可以空密碼登入的情況

mysql -u root -p

修改隨機密碼為root

mysql>
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;

無法登陸的情況

1、先修改配置檔案 /etc/my.cnf 令MySQL跳過登入時的許可權檢驗,在 [mysqld] 下加入一行:

skip-grant-tables

2、重啟MySQL

service mysqld restart

3、免密碼登入MySQL。

mysql

4、修改root密碼

mysql>  use mysql;
mysql> UPDATE user SET authentication_string = password('新密碼') WHERE host = 'localhost' AND user = 'root';
mysql> select host,user, authentication_string, password_expired from user; 
mysql> update user set password_expired='N' where password_expired='Y' //密碼不過期
mysql> update user set host='%' where user='root' and host='localhost'; //遠端可訪問
mysql> flush privileges; //重新整理許可權
mysql> exit;//退出

5、修改配置檔案 /etc/my.cnf 刪除此前新增那一行 skip-grant-tables ,並重啟MySQL(這一步非常重要,不執行可能導致嚴重的安全問題)

service mysqld restart //重啟 Mysql

參考:

https://help.aliyun.com/document_detail/42520.html

錯誤排查

輸入下面的命令然後檢視日誌

mysqld --console

新增連結授權

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;