新安装phpMyAdmin无法登录,调整配置后仍遇1045权限错误求助
解决phpMyAdmin登录的两个常见错误
我来帮你捋捋这个问题哈,你遇到的其实是phpMyAdmin默认配置和MySQL实际用户权限不匹配导致的,咱们一步步来解决:
先搞清楚错误原因
- 第一个错误「Login without a password is forbidden by configuration」:是因为phpMyAdmin默认把
AllowNoPassword设为false,禁止空密码登录,这个你改对了,但改完后出现的1045错误才是核心问题。 - 第二个错误「mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'IP'」:你的MySQL服务器里根本不存在
pma这个用户,或者这个用户没有权限从当前IP访问数据库——phpMyAdmin默认的pma账号只是配置文件里写的,不是MySQL里实际存在的用户,自然登不上。
两种解决方案任选其一
方案一:用MySQL真实账号直接登录(最简单快捷)
这是最省事的办法,直接用你MySQL里已经存在的合法账号(比如root)来配置phpMyAdmin:
- 打开phpMyAdmin的配置文件
config.inc.php(一般在phpMyAdmin安装目录下) - 找到以下配置项,修改成你自己的MySQL信息:
// 把默认的'pma'改成你的MySQL用户名,比如'root' $cfg['Servers'][$i]['user'] = 'root'; // 如果你的账号有密码,就填上密码;没有的话保持空,但记得开AllowNoPassword $cfg['Servers'][$i]['password'] = '你的MySQL密码'; // 有密码的话建议设为false,更安全;无密码才设为true $cfg['Servers'][$i]['AllowNoPassword'] = false; - 保存文件后刷新phpMyAdmin登录页面,用这个真实账号登录即可。
方案二:创建并配置专用的pma用户(适合想保留默认账号的场景)
如果你坚持想用pma这个账号登录,就得在MySQL里创建这个用户并赋予权限:
- 先通过命令行或其他数据库工具登录到你的MySQL服务器(比如用root账号):
mysql -u root -p - 创建
pma用户,允许从当前IP访问(把你的主机IP换成实际的,比如localhost或者你公网IP),可以设置密码(不推荐空密码):-- 设置密码的版本(推荐) CREATE USER 'pma'@'你的主机IP' IDENTIFIED BY '自定义密码'; -- 空密码版本(不推荐,仅测试用) -- CREATE USER 'pma'@'你的主机IP' IDENTIFIED BY ''; - 给
pma用户授予phpMyAdmin需要的权限(至少需要全局SELECT权限,用来查看数据库列表等):GRANT SELECT ON *.* TO 'pma'@'你的主机IP'; FLUSH PRIVILEGES; - 回到
config.inc.php,确保配置和你创建的用户匹配:$cfg['Servers'][$i]['user'] = 'pma'; $cfg['Servers'][$i]['password'] = '你刚才设置的密码'; // 有密码就设为false,空密码才设为true $cfg['Servers'][$i]['AllowNoPassword'] = false; - 保存配置后刷新页面,就能用
pma账号登录了。
重要提醒
- 尽量不要开启
AllowNoPassword,尤其是你的服务器暴露在公网环境下,空密码登录风险极高。 - 确认
$cfg['Servers'][$i]['host']设置的是正确的MySQL服务器地址,比如本地MySQL填localhost,远程MySQL填对应IP,还要确保远程MySQL服务器允许你的IP访问。
内容的提问来源于stack exchange,提问作者Ibrahim D.
相关产品推荐
相关产品推荐

