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

WAMP环境应用连接MySQL报SQLSTATE[HY000] [1045]错误如何解决?

WAMP环境MySQL 1045连接报错解决步骤

报错SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)的核心含义是:当前请求使用空密码登录root账户被MySQL拒绝,修改密码后依然报错可按以下顺序排查:

  • 确认使用的是WAMP自带的MySQL实例
    部分设备同时安装过独立版MySQL,WAMP启动的MySQL端口可能被占用,实际运行的是之前安装的MySQL,root密码和你设置的WAMP MySQL密码不一致。可以右键WAMP图标,选择「MySQL」-「查看端口使用情况」,确认运行端口为3306,且对应进程是WAMP的MySQL进程。
  • 校验root账户的权限配置
    打开WAMP自带的phpMyAdmin,登录后进入「用户账户」页面,找到root@localhost账户,确认:
    1. 该账户的「密码」列不是「无」
    2. 「主机」列确实为localhost
    3. 该账户拥有readersnewcenter库的全部权限
  • 修正连接代码
    你当前代码中的$password变量为空值,确认修改后已保存文件,且不存在其他上层代码覆盖该变量。同时建议将连接地址改为127.0.0.1避免socket连接权限异常,补充字符集配置避免后续数据乱码,修正后示例如下:
    public function connect()
    {
        try {
            $username = "root";
            $password = "你的MySQL root账户实际密码"; // 替换为实际密码
            $db = new PDO('mysql:host=127.0.0.1;dbname=readersnewcenter;charset=utf8mb4', $username, $password);
            $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            return $db;
        } catch (PDOException $e) {
            print "Error: " . $e->getMessage() . "<br/>";
            die();
        }
    }
    
  • 重置root密码(以上步骤无效时使用)
    右键WAMP图标,选择「MySQL」-「MySQL控制台」,直接回车进入(默认无密码),执行以下命令重置密码:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    FLUSH PRIVILEGES;
    
    执行完成后将连接代码中的$password改为设置的新密码即可。

内容的提问来源于stack exchange,提问作者état de choses

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:54:04