天天看點

mysql 密碼找回方法

環境說明:

作業系統:阿裡雲linux centos7.6   資料庫:5.7

1、首先确認伺服器出于安全的狀态,也就是沒有人能夠任意地連接配接MySQL資料庫。 因為在重新設定MySQL的root密碼的期間,MySQL資料庫完全出于沒有密碼保護的 狀态下,其他的使用者也可以任意地登入和修改MySQL的資訊。可以采用将MySQL對外的端口封閉,并且停止Apache以及所有的使用者程序的方法實作伺服器的準安全狀态。最安全的狀态是到伺服器的Console上面操作,并且拔掉網線。

2、修改MySQL的登入設定;

vim /etc/my.cnf      

在[mysqld]的段中加上一句:skip-grant-tables 儲存并且退出vim。

mysql 密碼找回方法

 3、重新啟動mysql

service mysqld restart # 或 /etc/init.d/mysqld restart      

4、登入并修改MySQL的root密碼

mysql -u root  -p      

 回車,無需輸入密碼即可進入的mysql。

mysql 密碼找回方法
USE mysql ;
UPDATE user SET Password = password ('P@ssw0rd_2770') WHERE User = 'root' ;
或
UPDATE mysql.user SET authentication_string=PASSWORD("P@ssw0rd_2770")WHERE user='root' and host='localhost';
flush privileges ; 
quit;      
mysql 密碼找回方法

 注:如果在mysql5.7的版本中,會出現如現錯誤 

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

錯誤的原因是 5.7版本下的mysql資料庫下已經沒有password這個字段了,password字段改成了authentication_string

5、将MySQL的登入設定修改回來

vim /etc/my.cnf      
mysql 密碼找回方法

 将剛才在[mysqld]的段中加上的skip-grant-tables删除;

儲存并且退出vim。

6、重新啟動mysql

service mysqld restart # 或 /etc/init.d/mysqld restart      

 7、重新登入資料庫驗證

mysql -u root  -p