首頁  >  文章  >  資料庫  >  linux mysql 忘記root密碼

linux mysql 忘記root密碼

王林
王林原創
2023-05-23 10:02:362384瀏覽

Linux MySQL 忘記 Root 密碼

在使用 Linux 系統並安裝 MySQL 資料庫時,我們通常會建立一個 root 使用者作為管理員。但有時候,我們可能會忘記 root 使用者的密碼或遇到類似無法登入 root 使用者的情況。這種情況可能會導致我們的資料庫無法存取、維護和備份,進而影響我們的業務。因此,本文將介紹一些解決方法,幫助我們重設 MySQL root 密碼。

方法一:使用 mysqladmin 命令列工具

mysqladmin 命令列工具是 MySQL 中常用的工具,它可以用來執行一些 MySQL 管理操作。我們可以使用它來重置 root 使用者的密碼。

  1. 首先,我們需要停止MySQL 服務,關閉MySQL 資料庫:
sudo systemctl stop mysql
  1. 然後,我們需要使用sudo 權限來執行MySQL 服務管理指令,並且跳過授權認證,以免無法登入:
sudo mysqld_safe --skip-grant-tables &
  1. 接著,我們需要進入MySQL 命令列:
sudo mysql -u root
  1. 現在,我們已經進入了MySQL 命令行,輸入以下命令(注意:新密碼需要根據實際情況設定):
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
  1. #為了使剛剛設定的密碼生效,我們需要刷新權限:
  2. ##
    FLUSH PRIVILEGES;
    最後,我們退出MySQL 命令列,停止MySQL 服務,並且重新啟動服務:
  1. exit
    sudo systemctl stop mysql
    sudo systemctl start mysql
此時,我們就成功重設了MySQL root 密碼。可以使用新密碼重新登入 MySQL。

方法二:使用mysql_secure_installation 腳本

mysql_secure_installation 腳本是MySQL 提供的安裝工具,它以互動式方式執行MySQL 安全性設置,包括移除匿名使用者、關閉外部root 登入、刪除測試資料庫等。此外,它還可以用來重設 root 使用者的密碼。

    我們需要用 sudo 權限來執行該腳本:
  1. sudo mysql_secure_installation
    在執行腳本時,我們會遇到幾個問題。首先,它會讓我們選擇是否移除匿名使用者。如果你想保留匿名用戶,選擇 No。否則選擇 Yes。
  1. 接下來,它會讓我們設定一個新的 root 使用者密碼。輸入新密碼並確認。
  2. 然後,腳本會讓我們選擇是否禁止 root 使用者遠端登入。如果你想允許遠端登錄,選擇 No。否則選擇 Yes。
  3. 最後,腳本會問我們是否刪除測試資料庫。如果你想繼續使用測試資料庫,選擇 No。否則選擇 Yes,刪除測試資料庫。
現在我們已經使用 mysql_secure_installation 腳本成功重設了 MySQL root 密碼,並做了一些安全設定。可以使用新密碼重新登入 MySQL。

方法三:從資料庫檔案還原密碼

如果以上兩種方法都不行,我們可以嘗試從資料庫檔案中還原密碼。但這個方法有一定的風險,可能會導致資料遺失或破壞資料庫結構。因此,我們應該謹慎操作,並確保已經備份好資料庫。

    停止MySQL 服務,並備份資料庫檔案:
  1. sudo systemctl stop mysql
    sudo cp -a /var/lib/mysql /var/lib/mysql.bak
    編輯MySQL 設定檔並新增以下一行:
  1. skip-grant-tables
    sudo nano /etc/mysql/my.cnf
儲存並退出。

    現在,我們需要以具有sudo 權限的使用者來啟動MySQL 服務:
  1. sudo mysqld_safe &
    接著,我們可以使用以下命令來進入MySQL 命令列:
  1. sudo mysql -u root
    然後,我們需要檢查並修正MySQL 資料庫表:
  1. mysql> use mysql;
    mysql> repair table user;
    mysql> exit
    此時,我們已經成功進入了MySQL 命令列。可以使用以下命令來重設root 使用者密碼(注意:新密碼需要根據實際情況設定):
  1. mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit
    最後,我們需要停止MySQL 服務,並恢復我們先前修改的配置檔案:
  1. 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn