打開 phpMyAdmin,點擊頂部導航欄的 「SQL」 標簽,進入 SQL 命令輸入界面。
UPDATE mysql.user
SET password = PASSWORD('你的新密碼')
WHERE user = 'root';
點擊右下角 「執行」 按鈕。若無報錯提示,即表示密碼修改成功。
password 列已重命名為 authentication_string,且 PASSWORD() 函數行為可能不同。新版本建議用:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';SET PASSWORD FOR 'root'@'localhost' = '新密碼';
修改數據庫密碼後,phpMyAdmin 自身連接配置必須同步更新,否則無法登錄。
config.inc.php (或 config.sample.inc.php 重命名)。\$cfg['Servers'][\$i]['password']。$cfg['Servers'][$i]['password'] = '你的新密碼';
保存配置文件,重新訪問 phpMyAdmin,使用 root 和新密碼登錄,確認無誤。
| 現象 | 可能原因 | 解決方案 |
|---|---|---|
| 執行 SQL 後「影響的列數」非預期值 | 多個 root 帳戶 (不同 host) | 加上 host 條件:WHERE user='root' AND host='localhost' |
| 配置文件改了仍登不上 | 配置文件路徑錯誤/權限問題/緩存 | 確認 config.inc.php 位置、檢查文件權限、清除瀏覽器緩存 |
| 報錯 "Access denied for user 'root'" | 密碼不匹配/權限表未刷新 | 執行 FLUSH PRIVILEGES; 重載權限表 |
| MySQL 8.0+ 無法用 PASSWORD() | 函數已移除/認證插件變更 | 使用 ALTER USER 或 SET PASSWORD 語法 |
| 版本 | user 表密碼列 | 推薦修改語法 |
|---|---|---|
| 5.6 及之前 | password | SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd'); |
| 5.7.6 - 5.7.x | authentication_string | ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpwd'; |
| 8.0+ | authentication_string | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpwd'; |
host='localhost' 或 '127.0.0.1')。