圖文詳解linux/windowsmysql忘記root密碼解決方案

gavin_hsueh發表於2017-12-04

經常有使用者過來諮詢說自己的mysql伺服器忘記密碼了怎麼辦,為了更好的解決大家的困擾,本文特歸檔整理了windows和linux系統下,mysql忘記密碼的解決方案。本文內容是我親測實用,當然過程中踩過的坑我也會在本文中一併分享交流。廢話不多說,上菜~


Windows篇


演示環境:

伺服器:windows2003 64位企業版

mysql版本:5.6.17

操作步驟:


1. 關閉mysql服務。

以管理員身份登入到您的伺服器系統,如果伺服器上的Mysql正在執行,則先停止MySQL服務。對於Windows伺服器,先轉到“服務”管理器:從“ 開始”選單中選擇“ 設定–控制皮膚”,然後 選擇“管理工具”,然後選擇“服務”。在列表中找到MySQL服務並停止它。
如果你使用的是組合包軟體,通常軟體中應該內建了一鍵關閉mysql服務的按鈕。

2. 執行CMD命令切換到MySql的bin目錄,執行mysqld –skip-grant-tables(注意後面沒有分號)

3. 此命令列視窗不要關閉,再重新開啟一個新的命令列視窗。注意,這時有時會出現一個警告,不要理會即可。

4. 再次開啟一個cmd新視窗。按上面方法執行至bin目錄下,執行命令:mysql -u root  -p,提示輸入密碼,直接回車即可

5.連線許可權資料庫,這一步不能少,否則會掉坑裡的。

>use mysql;

根據我數遍的親測,如果少了這一步,會出現mysql無法啟動,意外終止的結果。如下圖

注:如果你不幸已掉坑裡,可以參考這裡我親測有效的解決方案:http://www.chanzhi.org/thread/1441.html/441.html/。

6. 執行修改密碼命令,(這裡我將密碼修改為123456)。

update mysql.user set password=PASSWORD(`123456`) where User=`root`;

7. 重新整理執行:

mysql> flush privileges;

8. 關閉視窗,登出系統再進入,開啟mysql服務,重新登入。


Linux篇


演示環境:

伺服器:CentOS6.5 64位版
mysql版本:5.7.9

操作步驟:

1. KILL掉系統裡的MySQL程式;

killall -TERM mysqld

2. 用以下命令啟動MySQL,以不檢查許可權的方式啟動;

mysqld --skip-grant-tables &

3. 然後用空密碼方式使用root使用者登入 MySQL;

mysql -u root

4. 修改root使用者的密碼,這裡我改為123456;

update mysql.user set authentication_string=password(`123456`) where user=`root` ;

你可能會有疑問,上面命令中的“authentication_string”欄位是什麼。注意我這裡安裝的mysql版本是5.7。起初我是用下面的命令進行修改密碼操作的,但是反饋給我一個錯誤提示,如圖所示。

mysql> update mysql.user set password=PASSWORD(`123456`) where User=`root`; 

網上查了下資料才知道,原來mysql5.7資料庫下已經沒有password這個欄位了。password欄位改成了authentication_string。如果大家在具體操作時,根據自己的mysql版本做相應的命令調整即可。

5.重新整理執行。

mysql> flush privileges;
mysql> quit 

6.重新啟動MySQL,就可以使用新密碼登入了。

小結:

本文和大家一起分享了Windows和linux伺服器下,mysql服務root賬戶密碼的修改解決方案。如果大家在實際操作中有其他問題,或者您有更好的解決方案,歡迎和大家一起分享交流。我們共同學習,共同交流,共同進步。

1Q2Yd6Oc5UaKFF.gif

相關文章