首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux 系統下 MySQL Root 密碼重置完整指南

     編輯:MySQL 綜合教學

場景:忘記 MySQL Root 密碼怎麼辦?

在 Linux 伺服器運維中,遺忘 MySQL root 密碼是常見狀況。本文記錄一次完整的密碼重置實戰過程,基於 Percona MySQL 5.6 環境,涵蓋停止服務、跳過授權表啟動、修改密碼、驗證登入等關鍵步驟,並解決啟動路徑報錯、權限刷新等實際坑點。

操作環境

  • OS:Linux (CentOS/Ubuntu 均適用)
  • MySQL 版本:Percona Server 5.6.31-77.0
  • 安裝路徑:/alidata/server/mysql5.6
  • 配置文件:/alidata/server/mysql/my.cnf

步驟 1:停止 MySQL 服務

service mysqld stop

確認進程已完全停止:

ps -ef | grep mysqld

步驟 2:定位關鍵路徑

找到 mysqld_safe 與 mysqld 二進制位置,避免後續啟動報「文件不存在」。

find / -name mysqld_safe
# 輸出範例:/alidata/server/mysql5.6/bin/mysqld_safe

find / -name mysqld
# 輸出範例:/alidata/server/mysql5.6/bin/mysqld
#           /etc/init.d/mysqld

確認配置文件位置:

cat /alidata/server/mysql/my.cnf

步驟 3:以 --skip-grant-tables 模式啟動

此模式下 MySQL 不驗證權限,可直接免密登入修改密碼。

/alidata/server/mysql5.6/bin/mysqld_safe \
  --basedir=/alidata/server/mysql5.6 \
  --skip-grant-tables &

關鍵參數說明:

  • --basedir:指定 MySQL 安裝根目錄,解決「The file /usr/local/mysql/bin/mysqld does not exist」報錯。
  • --skip-grant-tables:跳過權限檢查。
  • &:後台運行。

常見報錯及解決:

mysqld_safe The file /usr/local/mysql/bin/mysqld does not exist or is not executable

原因:mysqld_safe 預設去 /usr/local/mysql 找 mysqld。必須顯式指定 --basedir 指向實際安裝目錄。

步驟 4:免密登入並修改密碼

mysql -u root

進入 MySQL 後執行:

USE mysql;
UPDATE user SET authentication_string = PASSWORD('新密碼') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
\q

注意: MySQL 5.7+ 密碼欄位為 authentication_string,5.6 為 Password。請根據版本調整。

步驟 5:正常重啟驗證

mysqladmin -u root -p shutdown
# 輸入新設定的密碼

service mysqld start

mysql -u root -p'新密碼' -e "SELECT VERSION();"

若能正常查詢版本號,即重置成功。

補充:mysqld_safe 關鍵參數對照表

參數作用
--basedir=pathMySQL 安裝目錄路徑(必填,否則預設 /usr/local/mysql)
--datadir=path數據目錄路徑
--core-file-size=sizecore 文件大小限制,傳遞給 ulimit -c
--skip-grant-tables跳過權限表驗證,用於密碼重置

參考資料

總結

  1. 停止服務 → 確認路徑 → --basedir + --skip-grant-tables 啟動 → 免密登入改密 → FLUSH PRIVILEGES → 正常重啟驗證。
  2. 核心坑點:必須指定 --basedir,否則 mysqld_safe 會去錯誤路徑找 mysqld 導致啟動失敗。
  3. 修改密碼後務必執行 FLUSH PRIVILEGES 刷新權限緩存。

按此流程操作,幾分鐘即可搞定 Root 密碼遺忘問題,建議收藏備用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved