You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP脚本连接WAMP环境MariaDB报Access denied错误求助

WAMP环境下PHP脚本连数据库报1045访问拒绝排查方案
  • 第一步先核对真实的数据库账号密码。你能通过phpMyAdmin正常登录不代表root密码是空,WAMP的phpMyAdmin会把正确密码存在自身配置文件里自动登录,你直接打开WAMP安装目录下phpMyAdmin/config.inc.php文件,找到$cfg['Servers'][$i]['password']配置项,后面的字符串就是当前数据库的真实密码,把这个值填到你脚本的$password变量里,不要默认留空。
  • 把连接主机名从localhost改成127.0.0.1。Windows环境下mysqli连接localhost时默认走命名管道通信,不会走TCP/IP,如果你的MariaDB/MySQL服务没开命名管道支持,哪怕账号密码全对也会报访问拒绝。如果你的数据库服务改过默认端口(WAMP经常会给MariaDB和MySQL分设3306、3307两个端口),直接把主机名写成127.0.0.1:对应端口号即可。
  • 确认你连的是正确的数据库实例。WAMP 3.2.6默认同时搭载MariaDB和MySQL两个数据库服务,很多人在phpMyAdmin里操作的是其中一个,但脚本默认连3306端口的另一个服务,两个服务的账号密码、库表数据是独立的,自然会报权限错。你可以点WAMP托盘图标,在MySQL/MariaDB的菜单里查看各自的my.ini配置,确认当前启动的服务端口,和你脚本里写的端口对应上。另外把系统里其他可能占3306端口的服务(比如独立安装的MySQL、IIS、其他集成环境)全关掉,避免脚本连到非WAMP的数据库实例上。
  • 核对用户授权范围。登录phpMyAdmin后进入「用户账户」页面,检查你用的root、xdurxttx_gromates两个账号的授权主机是否包含localhost和127.0.0.1,如果授权范围不覆盖本地环回地址,就执行如下SQL重新授权后刷新权限:
-- 把下方的'你的实际密码'替换成查到的真实数据库密码
GRANT ALL PRIVILEGES ON xdurxttx_gromates.* TO 'xdurxttx_gromates'@'localhost' IDENTIFIED BY '你的实际密码';
GRANT ALL PRIVILEGES ON xdurxttx_gromates.* TO 'xdurxttx_gromates'@'127.0.0.1' IDENTIFIED BY '你的实际密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的实际密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的实际密码';
FLUSH PRIVILEGES;

报错核心提示:Access denied for user 'root'@'localhost' (using password: NO) 明确说明你当前脚本发起连接时没有传密码,优先排查密码配置错误、连接到了错误的数据库实例这两个最高频的原因,90%的同类问题都是这两个问题导致的。

内容的提问来源于stack exchange,提问作者toby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:27:22