首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 系統重置 MySQL Root 密碼圖文教學:跳過權限表實戰操作

     編輯:MySQL 資料庫相關知識

Linux 環境下遺忘 MySQL Root 密碼是常見運維場景。本文提供圖文並茂的完整重置流程:驗證安裝、確認遺忘、停止服務、跳過權限表啟動、免密登入修改密碼、驗證生效。

一、前置檢查

# 檢查 MySQL 安裝狀態 (Debian/Ubuntu)
dpkg --list | grep mysql

# 嘗試登入確認密碼遺忘
mysql -u root -p
# 輸入密碼失敗提示:Access denied for user 'root'@'localhost'

二、核心重置步驟

  1. 停止 MySQL 服務
    service mysql stop
    # 或
    systemctl stop mysqld
    # 確認進程結束
    ps aux | grep mysql
  2. 跳過權限表啟動 MySQL
    /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

    關鍵參數 --skip-grant-tables 讓 MySQL 啟動時不載入權限表,允許無密碼登入。

  3. 免密登入修改密碼
    /usr/local/mysql/bin/mysql -u root -p
    # 提示輸入密碼時直接按 Enter
    USE mysql;
    UPDATE user SET Password = PASSWORD('新密碼') WHERE User = 'root';
    FLUSH PRIVILEGES;
    QUIT;
  4. 正常重啟驗證
    # 終止跳過權限的進程
    pkill -f mysqld_safe
    # 正常啟動
    service mysql start
    # 或
    systemctl start mysqld
    
    # 驗證新密碼
    mysql -u root -p'新密碼'
    SHOW DATABASES;

三、常見問題排查

問題原因解決
mysqld_safe 啟動失敗舊進程未結束/權限不足/路徑錯誤pkill -9 mysqld; 確認 basedir/datadir; 以 root 執行
UPDATE 後密碼不生效未執行 FLUSH PRIVILEGES / 欄位名錯誤MySQL 5.7+ 欄位為 authentication_string; 執行 FLUSH PRIVILEGES
啟動報錯 PID 檔案資料目錄權限/SELinux/殘留 lock 檔chown -R mysql:mysql datadir; 關閉 SELinux; 刪除 .pid 檔

四、MySQL 5.7+ / 8.0 密碼欄位變更注意

-- MySQL 5.7+
UPDATE user SET authentication_string = PASSWORD('新密碼') WHERE User = 'root';

-- MySQL 8.0+ (需指定加密插件)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved