在Linux中,如何重置 mysql root 密碼?

黄嘉波發表於2024-06-22

在Linux系統中重置MySQL的root密碼通常有幾種方法,以下是一些常見的步驟:

1. 使用mysqladmin命令
  1. 首先,停止MySQL服務:

    sudo systemctl stop mysql
    
  2. 以安全模式啟動MySQL,允許root使用者無密碼登入:

    sudo mysqld_safe --skip-grant-tables &
    
  3. 連線到MySQL伺服器:

    mysql -u root
    
  4. 選擇mysql資料庫並重新整理許可權:

    FLUSH PRIVILEGES;
    USE mysql;
    
  5. 重置root密碼:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
    
  6. 退出MySQL並重啟服務:

    exit
    sudo systemctl start mysql
    
2. 使用SET PASSWORD命令

如果MySQL服務正在執行,你可以嘗試以下步驟:

  1. 以無密碼方式啟動MySQL服務(如果可能):

    sudo mysqld_safe --skip-grant-tables &
    
  2. 連線到MySQL伺服器:

    mysql -u root
    
  3. 執行以下命令來設定新密碼:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密碼');
    
  4. 重新整理許可權並退出:

    FLUSH PRIVILEGES;
    exit
    
  5. 重啟MySQL服務:

    sudo systemctl restart mysql
    
3. 使用ALTER USER命令

使用ALTER USER命令可以在不重啟MySQL服務的情況下重置密碼:

  1. 以常規方式登入到MySQL(如果密碼未知,可能需要先按照方法一或方法二操作)。

  2. 執行以下命令來重置密碼:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
    
  3. 重新整理許可權:

    FLUSH PRIVILEGES;
    
4. 注意事項:
  • 在執行上述操作時,請確保你有足夠的許可權來停止和啟動MySQL服務。
  • 重置密碼後,確保記錄下新的密碼,以免丟失訪問許可權。
  • 在生產環境中,建議使用更安全的密碼策略,比如密碼複雜性要求和定期更換密碼。
  • 如果你使用的是遠端連線,確保'root'@'localhost'中的localhost替換為相應的主機名或IP地址,或者使用'root'@'%'來允許從任何主機連線。

綜上所述,以上步驟應該能夠幫助你在Linux系統中重置MySQL的root密碼。如果遇到問題,可能需要檢視MySQL的錯誤日誌檔案來獲取更多資訊。

相關文章