linux中mysql忘記root密碼如何登陸


首先確保服務器處於安全模式,因為修改密碼期間數據庫處於沒有密碼保護的狀態。
進行如下操作:
 
1、關閉mysql服務 sc stop mysql
 
2、以安全模式啟動mysql
mysqld -- skip-grant-tables
建議通過修改配置文件實現安全啟動:
vi /etc/my.cnf
在[mysqld]段中加上一句: skip-grant-tables
保存並退出
 
3、重新啟動mysqld
service mysqld restart
 
4、登陸mysql
直接輸入mysql -u root -p 回車, (忽略密碼)再回車;
 
5、更改root密碼
UPDATE mysql.user SET Password=PASSWORD('xxx') where USER='root';
更改密碼時出現錯誤:
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
原因:數據庫下沒有Password字段
解決辦法
查找數據庫mysql的user表
      show databases;
      use mysql;
      show tables;
      select * from user;   
發現沒有Password字段,Password字段改成了authentication_string
使用該字段重新修改root密碼即可:
update mysql.user set authentication_string=password('xxx') where user='root' ;
注意: mysql新版本用於存用戶密碼的字段名為authentication_string而不是 password,且新密碼必須使用password函數進行加密
 
6、修改完密碼以后再打開配置文件,將skip-grant-tables注釋掉。
vi /etc/my.cnf
#skip-grant-tables
 
7、重新運行mysql,即可使用新密碼進行登陸。
service mysqld restart
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM