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

Cpanel主机MySQL数据库连接报错:php_network_getaddresses错误求助

解决Cpanel主机中PHP数据库连接错误(SQLSTATE[HY000] [2002])

先看你贴出的错误日志:

Connection failed: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

这个错误我在Cpanel环境里碰过好几次,核心问题是PHP没法解析你代码里的localhost主机名,找不到对应的数据库服务器地址。结合Cpanel的特性,给你几个具体的排查和解决步骤:

  • 替换localhost为Cpanel提供的专属数据库主机地址
    很多Cpanel主机的数据库服务器并不使用localhost,而是有专门的内网域名(比如db.yourdomain.com)或者内网IP。你登录Cpanel面板后,找到MySQL Databases或者Database Manager功能,里面会明确显示你的数据库对应的「Host」地址——把代码里的$servername = "localhost";替换成这个地址,大概率能解决解析问题。

  • 确认数据库用户名、密码的有效性
    虽然当前错误提示是地址解析问题,但也顺手核对下helloDB这个用户名和对应的密码是否正确。另外要确保该用户已被授权连接目标数据库:在Cpanel的用户管理界面里,检查这个用户的权限,以及是否允许从当前服务器的IP访问(Cpanel默认会开放内网/本地连接权限,但最好确认下)。

  • 检查PHP的mysqli扩展是否启用
    登录Cpanel找到Select PHP Version,在扩展列表里看mysqli是否已经勾选启用。如果没启用,勾选后保存设置,再重新测试连接。

  • 用IP地址直接替代主机名
    如果Cpanel给出的数据库主机是内网IP,直接把$servername改成这个IP(比如$servername = "192.168.1.100";),有时候主机名解析出问题,用IP能直接绕过解析错误。

额外提一句:你可以先试试在Cpanel的phpMyAdmin里用相同的用户名和密码登录数据库,如果能正常进入,说明数据库本身是正常运行的,问题肯定出在PHP代码的连接参数上。

给你一个调整后的测试代码参考(建议加上要连接的数据库名,避免后续操作报错):

<?php 
$servername = "你的Cpanel数据库主机地址"; 
$username = "helloDB"; 
$password = "MY_PASS"; 
$dbname = "你要连接的数据库名称"; // 比如和用户名同名的helloDB

$conn = mysqli_connect($servername, $username, $password, $dbname); 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
echo "Connected successfully"; 
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:49:55