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

CodeIgniter连接MySQL报错mysqli::real_connect(): (HY000/2002)求解决

解决CodeIgniter连接MySQL出现HY000/2002错误的方案

咱们一步步来解决这个数据库连接问题吧——我之前在XAMPP和CodeIgniter环境里也碰到过类似的情况,下面给你梳理几个可能的解决方向:

1. 确认MySQL服务是否正常运行

XAMPP的MySQL服务未启动或启动失败是最常见的原因:

  • 打开XAMPP控制面板,查看MySQL模块的状态是否为Running
  • 如果未运行,点击Start按钮尝试启动;若启动失败,点击MySQL模块的Logs按钮查看错误日志,大概率是端口被其他程序(如独立安装的MySQL、WAMP、部分杀毒软件)占用了

2. 修改MySQL端口并更新CodeIgniter配置

如果默认3306端口被占用,需要修改端口并同步配置:

  1. 打开XAMPP安装目录下mysql\bin\my.ini文件
  2. 找到port=3306,将其修改为未被占用的端口(比如3307)
  3. 重启XAMPP的MySQL服务
  4. 在CodeIgniter的数据库配置文件中,更新hostname为带端口的格式:
    'hostname' => '127.0.0.1:3307',
    

3. 检查Windows防火墙/杀毒软件拦截

Windows防火墙或第三方杀毒软件可能会阻止PHP访问MySQL端口:

  • 打开Windows Defender防火墙 → 允许应用通过防火墙
  • 找到XAMPP的MySQL服务(或直接手动添加端口3306/你修改后的端口),确保勾选了私有网络权限(本地开发无需勾选公共网络)
  • 临时关闭第三方杀毒软件,测试是否能正常连接

4. 验证数据库、用户名和密码的正确性

确保你的配置信息完全匹配:

  • 登录phpMyAdmin,确认你配置中填写的XXXXXX数据库确实存在
  • 验证root用户名和空密码是否正确(XAMPP默认root无密码,但如果之前修改过密码,需要同步更新配置)
  • 可以用命令行测试连接:
    mysql -u root -p
    # 空密码直接回车,然后执行
    use XXXXXX;
    
    如果这里报错,说明数据库或账号信息有问题

5. 排查CodeIgniter配置细节

  • 临时将db_debug设置为TRUE,获取更详细的错误信息:
    'db_debug' => TRUE,
    
  • 确认dbdriver设置为mysqli,与你的PHP7.2.4环境匹配(该版本支持mysqli扩展)

6. 排除CodeIgniter框架问题

写一个简单的原生mysqli连接测试脚本,放在XAMPP的htdocs目录下,访问测试:

<?php
$conn = mysqli_connect('127.0.0.1', 'root', '', 'XXXXXX');
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
  • 如果这个脚本能成功连接,说明问题出在CodeIgniter的配置或框架本身;如果仍失败,问题则在MySQL服务或系统层面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:55