MySQL忘記密碼解決方案
阿新 • • 發佈:2022-04-03
可以空密碼登入的情況
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;