萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 密碼恢復四大經典方法(含 skip-grant-tables、配置檔、mysqladmin、SQL)

方法一:--skip-grant-tables 啟動(最通用)

  1. 停止 MySQL:killall -TERM mysqld 或服務管理器停止。
  2. 啟動跳過權限:mysqld_safe --skip-grant-tables & (Linux) / mysqld --skip-grant-tables (Win)。
  3. 無密碼登入:mysql -u root
  4. 更新密碼:
    UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
    FLUSH PRIVILEGES;
    QUIT;
    
  5. 正常重啟 MySQL。

方法二:修改配置檔 my.cnf/my.ini

  1. 編輯 [mysqld] 區段加入 skip-grant-tables。
  2. 重啟服務:systemctl restart mysqld / net stop/start mysql。
  3. 無密碼登入並更新密碼(同方法一步驟 3-4)。
  4. 移除 skip-grant-tables 並再次重啟。

方法三:SQL 新增超級用戶(需已有 root 登入)

INSERT INTO mysql.user (Host, User, authentication_string)
VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;

實際是新增用戶而非修改既有 root。

方法四:mysqladmin 命令列(需知舊密碼)

mysqladmin -u root -p password 'newpass'
# 輸入舊密碼完成

Windows 圖形化重置步驟

  1. 管理員身份開啟 CMD。
  2. net stop mysql
  3. cd /d D:\usr\local\mysql\bin(依實際路徑)
  4. mysqld-nt --skip-grant-tables(視窗保持開啟)
  5. 新開 CMD:mysqladmin -u root flush-privileges password "newpass"
  6. mysqladmin -u root -p shutdown(輸入新密碼關閉)
  7. net start mysql

Linux 同步步驟

systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
pkill mysqld
systemctl start mysqld
copyright © 萬盛學電腦網 all rights reserved