方法一:mysqladmin 命令列(安裝後首次設定)
/usr/local/mysql/bin/mysqladmin -u root password 'new_password'
方法二:UPDATE user 表(需登入權限)
mysql -u root -p
UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE User = 'root';
FLUSH PRIVILEGES;
方法三:SET PASSWORD 指令(推薦,語法清晰)
mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
-- 或
SET PASSWORD FOR 'root'@'%' = PASSWORD('new_password');
方法四:忘記 root 密碼緊急重置
- 停止 MySQL 服務
- 啟動跳過授權表模式:
mysqld_safe --skip-grant-tables --skip-networking &
- 無密碼登入:
mysql -u root
- 修改密碼:
USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_password') WHERE User = 'root';
-- MySQL 5.7+ 用 authentication_string,5.6 用 Password
FLUSH PRIVILEGES;
- 正常重啟 MySQL 服務
版本差異提醒
- MySQL 5.7+:
authentication_string 欄位,PASSWORD() 棄用建議用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
- MySQL 8.0+:預設
caching_sha2_password 插件,舊客戶端需指定 --default-auth=mysql_native_password
安全建議
- root 僅允許
localhost 登入,刪除 % 帳號
- 使用強密碼策略(
validate_password 插件)
- 定期輪換密碼,記錄變更日誌