安裝最新版 phpMyAdmin 後,使用 root 無密碼登入(本機開發常見情況),卻一直出現「存取被拒絕」錯誤。檢查權限設定無誤,網路搜尋也找不到明確解答。
追蹤原始碼發現,設定檔 config.inc.php 中有項關鍵設定:
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;
在 libraries/common.inc.php 第 886 行進行驗證:若為 false 且使用者為 root,則強制要求密碼不為空,否則直接拒絕驗證。預設值即為 false,這是出於安全考量,強制要求 root 設定密碼。
config.inc.php。$cfg['Servers'][$i]['AllowNoPasswordRoot']。true:$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;
官方若能在拒絕時給出更明確的提示(如「root 密碼為空,目前安全等級不允許登入,請至設定檔修改 AllowNoPasswordRoot」),將大幅降低開發者除錯成本。
AllowNoPasswordRoot = false。true,請確保資料庫不對外開放存取。