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

XAMPP环境下PHP本地连接MySQL提示Access denied问题求助

解决方案:PHP无法连接XAMPP本地MySQL(Access denied for 'root'@'localhost')

针对你的问题,以下是几个经过验证的解决步骤,按优先级尝试:

1. 修正root用户的认证方式

MySQL的root@localhost账号可能采用了auth_socket认证(依赖系统用户身份,而非密码),这会导致PHP进程(运行在Apache用户下)无法通过密码(即使是空密码)登录。

  • 登录phpMyAdmin,打开SQL控制台,执行以下语句:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
    FLUSH PRIVILEGES;
    
    这里BY ''保持密码为空,和你代码里的配置一致。执行后重启MySQL服务。

2. 切换连接地址为127.0.0.1

MySQL中localhost默认使用Unix socket连接,而127.0.0.1使用TCP/IP连接,两者的权限规则可能不同。修改你的db.php:

$servername = "127.0.0.1"; // 替换原来的localhost

保存后刷新页面测试。

3. 确认目标数据库存在

重装XAMPP后,之前的pcss数据库可能没有恢复。登录phpMyAdmin检查是否存在该数据库,如果缺失,重新导入之前的备份文件。

4. 创建专用数据库用户(推荐)

依赖root账号连接数据库并不安全,也容易出现权限认证问题。新建一个专门给PHP用的用户:

  • 在phpMyAdmin的SQL控制台执行:
    CREATE USER 'pcss_dev'@'localhost' IDENTIFIED WITH mysql_native_password BY 'dev_password';
    GRANT ALL PRIVILEGES ON pcss.* TO 'pcss_dev'@'localhost';
    FLUSH PRIVILEGES;
    
  • 修改db.php的默认分支:
    default:
    $username = "pcss_dev";
    $password = "dev_password";
    $database = "pcss";
    
    保存后测试连接。

5. 检查PHP mysqli扩展状态

确保XAMPP的PHP已启用mysqli扩展:

  • 打开XAMPP控制面板,点击PHP的Config按钮,选择php.ini。
  • 查找extension=mysqli,确保该行没有被注释(前面没有;)。
  • 重启Apache服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:22:19