首頁  >  文章  >  資料庫  >  mysql密碼忘了怎麼修復

mysql密碼忘了怎麼修復

WBOY
WBOY轉載
2023-06-02 15:22:212586瀏覽

首先,我們要先了解MySQL密碼儲存的方式。 MySQL將密碼儲存為加密後的雜湊字串,這個過程是透過使用SHA1()加密函數和一個叫做Salt的隨機字串來完成的。由於MySQL密碼的加密過程是不可逆的,因此我們需要實作一些特定的措施才能夠還原它。

方法一:使用root使用者修改密碼

如果您具有root權限,可以使用下列步驟來修改密碼:

1.以root身分登入MySQL伺服器

mysql -u root -p

2.輸入root使用者密碼

3.進入MySQL命令列

4.進入mysql命令列後,使用下列指令來修改root使用者密碼:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

#請將「new_password」替換為您要設定的新密碼,並確保在MySQL命令列的末尾添加分號;

5.退出MySQL,並使用新密碼重新登入

在使用MySQL時,root使用者俱有最高的權限,因此如果您知道root使用者的密碼,那麼修改MySQL的密碼就變得非常簡單了。

方法二:重設MySQL密碼

如果您無法透過root使用者來修改密碼,或者根本不知道root密碼,那麼重設MySQL密碼可能是您的最佳選擇。以下是兩種常用的重設MySQL密碼的方法:

方法1:使用skip-grant-tables重設MySQL密碼

這種方法將跳過MySQL的使用者認證過程,並允許您無需提供密碼就可以登入MySQL。以下是具體步驟:

1.停止MySQL服務

sudo systemctl stop mysql

2.執行以下指令以跳過MySQL的使用者認證流程:

sudo mysqld_safe --skip-grant-tables &

3.以root身分登入MySQL伺服器

mysql -u root

4.在進入MySQL命令列後,使用以下命令來修改密碼:

mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';

請將「new_password」替換為您要設定的新密碼,並確保在MySQL命令列的末尾添加分號;

5.刷新mysql.user表

mysql> FLUSH PRIVILEGES;

6.退出MySQL,並重新啟動MySQL

#sudo systemctl start mysql

7.使用新密碼重新登入MySQL

方法2:使用重設腳本重設MySQL密碼

這個方法需要您以root身分執行腳本,並且需要知道MySQL的資料檔案所在位置。以下是具體步驟:

1.停止MySQL服務

sudo systemctl stop mysql

2.找到MySQL的資料檔

預設情況下,MySQL將其資料檔案儲存在/var/lib/mysql目錄中。執行下列指令可以找到資料檔案的確切位置:

sudo find / -name "*.frm"

3.建立重設腳本

請使用以下指令將以下程式碼儲存到resetmysql.sh檔案中:

#!/bin/bash
/usr/sbin/mysqld --skip-grant-tables --skip-networking  &
sleep 5s

mysql -u root <<EOF
UPDATE mysql.user SET Password=PASSWORD(&#39;new_password&#39;) WHERE User=&#39;root&#39;;
FLUSH PRIVILEGES;
EOF

killall mysqld
sleep 5s
/usr/sbin/mysqld --skip-networking &

請將「new_password」替換為您要設定的新密碼。

4.執行腳本重設MySQL密碼

使用下列指令以root權限執行重設腳本:

##sudo bash resetmysql.sh

5.啟動MySQL

sudo systemctl start mysql

6.用新密碼重新登入MySQL

到這裡,讀者應該已經知道以下兩種解決MySQL密碼忘記的方法了:使用root使用者修改密碼,使用重設MySQL密碼腳本重設密碼。

以上是mysql密碼忘了怎麼修復的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除