解決MySQL8忘記密碼問題的有效方法

MySQL是一種流行的關係型數據庫管理系統,被廣泛應用於Web等領域。遇到MySQL忘記密碼的問題,對於許多開發人員來說可能很棘手。本文將分享一些解決方案,以幫助開發人員更好地應對MySQL8忘記密碼問題。

一、使用 –skip-grant-tables 重置root密碼

一種簡單而常見的方法是在MySQL服務器上使用 –skip-grant-tables 選項將密碼重置為新密碼。該選項啟動MySQL服務器並忽略所有訪問權限,從而允許root用戶使用以下步驟更改密碼:

Step 1:停止當前正在運行的MySQL服務器
sudo systemctl stop mysql
Step 2:啟動MySQL服務器,跳過訪問權限檢查
sudo mysqld --skip-grant-tables &
Step 3:連接到MySQL服務器,使用mysql客戶端
mysql -u root
Step 4:在MySQL控制台中更新密碼,並刷新訪問權限
update mysql.user set authentication_string=password('NEWPASSWORD') where user='root';
flush privileges;
Step 5:退出MySQL控制台,並停止MySQL服務器
exit;
sudo systemctl stop mysql
Step 6:啟動MySQL服務器正常驗證
sudo systemctl start mysql

二、使用mysql_config_editor設置root密碼

在MySQL 5.6.6版本之後,提供了一個名為mysql_config_editor的命令行實用程序,可以使用它來更安全地設置MySQL用戶名和密碼。要使用此實用程序,請執行以下步驟:

Step 1:使用mysql_config_editor創建一個新的MySQL登錄路徑
mysql_config_editor set --login-path=local --host=localhost --user=root --password
Step 2:在新的MySQL登錄路徑中重置root用戶的密碼
mysql_config_editor set --login-path=local --host=localhost --user=root --password=NEWPASSWORD

三、在MySQL 8.0.11+之前使用默認加密插件方法

這是一個針對MySQL 8.0.11及更早版本的方法,這些版本使用mysqld默認加密插件,即mysql_native_password。在這種情況下,可以使用以下方法更改MySQL root密碼:

Step 1:停止MySQL服務器
sudo systemctl stop mysql
Step 2:啟動MySQL服務器並跳過權限檢查
sudo mysqld_safe --skip-grant-tables &
Step 3:使用mysql客戶端連接到MySQL服務器
mysql -u root
Step 4:設置新密碼,並刷新訪問權限
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASSWORD';
flush privileges;
Step 5:退出MySQL控制台,並停止MySQL服務器
exit;
sudo systemctl stop mysql
Step 6:啟動MySQL服務器正常驗證
sudo systemctl start mysql

四、在MySQL 8.0.11+之後使用caching_sha2_password插件方法

MySQL在8.0.11版本中更改了默認的身份驗證插件,將其從mysql_native_password更改為caching_sha2_password。這種更改帶來了更強的安全性,但可能需要使用以下步驟更改root用戶的密碼:

Step 1:停止當前正在運行的MySQL服務器
sudo systemctl stop mysql
Step 2:使用 --skip-grant-tables 參數啟動MySQL服務器,並連接到MySQL服務器
sudo mysqld --skip-grant-tables &
mysql -u root
Step 3:使用ALTER USER命令修改root用戶的身份驗證插件和密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'NEWPASSWORD';
flush privileges;
Step 4: 退出MySQL控制台,並停止MySQL服務器
exit;
sudo systemctl stop mysql
Step 5:使用正常的方式啟動MySQL服務器,並使用新密碼登錄
sudo systemctl start mysql
mysql -u root -p

以上是在不同MySQL版本上解決忘記MySQL root密碼的四種不同的方法。通過這些方法,我們可以幫助開發人員更好地解決MySQL8密碼忘記問題,保證MySQL服務器的正常使用。

原創文章,作者:VGWR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131001.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VGWR的頭像VGWR
上一篇 2024-10-03 23:42
下一篇 2024-10-03 23:42

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示“文件中含有宏,保存將導致宏不可用”的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29

發表回復

登錄後才能評論