Linux MySQL 忘記 Root 密碼
在使用 Linux 系統並安裝 MySQL 資料庫時,我們通常會建立一個 root 使用者作為管理員。但有時候,我們可能會忘記 root 使用者的密碼或遇到類似無法登入 root 使用者的情況。這種情況可能會導致我們的資料庫無法存取、維護和備份,進而影響我們的業務。因此,本文將介紹一些解決方法,幫助我們重設 MySQL root 密碼。
方法一:使用 mysqladmin 命令列工具
mysqladmin 命令列工具是 MySQL 中常用的工具,它可以用來執行一些 MySQL 管理操作。我們可以使用它來重置 root 使用者的密碼。
- 首先,我們需要停止MySQL 服務,關閉MySQL 資料庫:
sudo systemctl stop mysql
登入後複製
- 然後,我們需要使用sudo 權限來執行MySQL 服務管理指令,並且跳過授權認證,以免無法登入:
sudo mysqld_safe --skip-grant-tables &
登入後複製
- 接著,我們需要進入MySQL 命令列:
- 現在,我們已經進入了MySQL 命令行,輸入以下命令(注意:新密碼需要根據實際情況設定):
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
登入後複製
- #為了使剛剛設定的密碼生效,我們需要刷新權限:
##
最後,我們退出MySQL 命令列,停止MySQL 服務,並且重新啟動服務:exit
sudo systemctl stop mysql
sudo systemctl start mysql
登入後複製
此時,我們就成功重設了MySQL root 密碼。可以使用新密碼重新登入 MySQL。
方法二:使用mysql_secure_installation 腳本
mysql_secure_installation 腳本是MySQL 提供的安裝工具,它以互動式方式執行MySQL 安全性設置,包括移除匿名使用者、關閉外部root 登入、刪除測試資料庫等。此外,它還可以用來重設 root 使用者的密碼。
我們需要用 sudo 權限來執行該腳本:sudo mysql_secure_installation
登入後複製
在執行腳本時,我們會遇到幾個問題。首先,它會讓我們選擇是否移除匿名使用者。如果你想保留匿名用戶,選擇 No。否則選擇 Yes。 接下來,它會讓我們設定一個新的 root 使用者密碼。輸入新密碼並確認。 然後,腳本會讓我們選擇是否禁止 root 使用者遠端登入。如果你想允許遠端登錄,選擇 No。否則選擇 Yes。 最後,腳本會問我們是否刪除測試資料庫。如果你想繼續使用測試資料庫,選擇 No。否則選擇 Yes,刪除測試資料庫。
現在我們已經使用 mysql_secure_installation 腳本成功重設了 MySQL root 密碼,並做了一些安全設定。可以使用新密碼重新登入 MySQL。
方法三:從資料庫檔案還原密碼
如果以上兩種方法都不行,我們可以嘗試從資料庫檔案中還原密碼。但這個方法有一定的風險,可能會導致資料遺失或破壞資料庫結構。因此,我們應該謹慎操作,並確保已經備份好資料庫。
停止MySQL 服務,並備份資料庫檔案:sudo systemctl stop mysql
sudo cp -a /var/lib/mysql /var/lib/mysql.bak
登入後複製
編輯MySQL 設定檔並新增以下一行:sudo nano /etc/mysql/my.cnf
登入後複製
登入後複製
儲存並退出。
現在,我們需要以具有sudo 權限的使用者來啟動MySQL 服務:
接著,我們可以使用以下命令來進入MySQL 命令列:
然後,我們需要檢查並修正MySQL 資料庫表:mysql> use mysql;
mysql> repair table user;
mysql> exit
登入後複製
此時,我們已經成功進入了MySQL 命令列。可以使用以下命令來重設root 使用者密碼(注意:新密碼需要根據實際情況設定):mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit
登入後複製
最後,我們需要停止MySQL 服務,並恢復我們先前修改的配置檔案:sudo nano /etc/mysql/my.cnf
登入後複製
登入後複製
移除skip-grant-tables 行,儲存並退出。
sudo systemctl stop mysql
sudo systemctl start mysql
登入後複製
此時我們已經成功從資料庫檔案中還原了 MySQL root 密碼。可以使用新密碼重新登入 MySQL。
總結
在使用 Linux MySQL 資料庫時,如果遇到忘記 root 密碼或無法登入的情況,可以使用以上三種方法來重設密碼。但這些方法都有一定的風險,請確保已經備份好資料庫,並謹慎操作。同時建議設定強密碼並定期更換密碼,以加強資料庫安全性。
以上是linux mysql 忘記root密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!