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

MySQL 修改 Root 密碼完整指南:三種標準方法與新手常見踩坑避雷

     編輯:MySQL 綜合教學

方法一:mysqladmin 命令列工具(推薦,無需登入 MySQL)

正確語法


mysqladmin -u root -p password 'new_password'

執行後提示 Enter password: 輸入舊密碼,即可完成修改。

新手高頻錯誤:加了引號導致密碼包含引號


-- 錯誤示範
mysqladmin -u root -p password 'woshiduide'   -- 正確
mysqladmin -u root -p password 'woshiduide'   -- 錯誤:實際密碼變成 'woshiduide'(含單引號)

驗證方式:


mysql -u root -p'woshiduide'   -- 含引號才能登入,證明密碼被錯誤設定

修正已加引號的密碼


mysqladmin -u root -p'woshiduide' password 123456

方法二:登入 MySQL 後透過 SQL 修改(適用於已知密碼)

方案 A:UPDATE user 表 + FLUSH PRIVILEGES


mysql -u root -p
USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_pass') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
EXIT;

注意:MySQL 5.7+ 欄位為 authentication_string,舊版為 Password。

方案 B:SET PASSWORD 指令(更簡潔)


mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass');
FLUSH PRIVILEGES;
EXIT;

方法三:跳過權限表啟動重置密碼(忘記 Root 密碼時的救命稻草)

  1. 停止 MySQL 服務。
  2. 以 --skip-grant-tables 啟動:mysqld --skip-grant-tables &
  3. 無密碼登入:mysql -u root
  4. 執行修改:
    
    USE mysql;
    UPDATE user SET authentication_string = PASSWORD('new_pass') WHERE User = 'root';
    FLUSH PRIVILEGES;
    
  5. 正常重啟 MySQL 服務。

新手必知的四大坑點總結

坑點錯誤表現正確做法
密碼加引號 實際密碼包含引號字符 password 'newpass' 無引號
-p 後直接跟密碼無空格 -pwoshiduide 被解析為密碼 "woshiduide",但若密碼以特殊字符開頭會失敗 -p 空格後輸入,或 -p'password' 完整包裹
修改後未 FLUSH PRIVILEGES 新密碼不生效,舊密碼仍可登入 SQL 修改後必須執行 FLUSH PRIVILEGES
Host 欄位不匹配 本機能登入,遠端不能(或反之) 確認 User 與 Host 組合精確匹配,必要時建立 root@'%'

MySQL 8.0+ 新語法提醒


ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
-- 或
SET PASSWORD FOR 'root'@'localhost' = 'new_pass';  -- 8.0 不需 PASSWORD()
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved