Php SQLSTATE[HY000][2003]无法连接到“XXX.XXX.XXX.XXX”上的MySQL服务器(60)

Php SQLSTATE[HY000][2003]无法连接到“XXX.XXX.XXX.XXX”上的MySQL服务器(60),php,mysql,Php,Mysql,我正在PHP下开发一个带有远程数据库的Web应用程序,其中有以下测试脚本: try { $dbh = new PDO('mysql:host=XXX.XXX.XXX.XXX;dbname=db_app;', $user, $password); $date = ($dbh->query('SELECT NOW()'); print_r($date); } catch (PDOException $e) { print "Error!: " . $e-&

我正在PHP下开发一个带有远程数据库的Web应用程序,其中有以下测试脚本:

try {
    $dbh = new PDO('mysql:host=XXX.XXX.XXX.XXX;dbname=db_app;', $user, $password);
    $date = ($dbh->query('SELECT NOW()');
    print_r($date);   
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
exit();
当我运行它时,我得到以下输出:

错误!:SQLSTATE[HY000][2003]无法连接到'10.16.50.87'60上的MySQL服务器

我仍然可以使用MySQL workbench并通过命令行界面连接到目标数据库

据我了解,远程服务器配置可能是问题所在。但是,我们有一个brother PHP应用程序连接到同一个服务器时没有问题,唯一的区别是用户名和密码,即使使用brother PHP应用程序凭据在我的应用程序上运行测试,也会显示相同的错误。看来只有我的PHP有这个问题

我正在PHP5.5.3上运行测试,目标服务器运行的是MySQL 5.5 我的应用程序和Brother应用程序都在登台服务器A上运行,它们都应该连接到登台服务器B中的MySQL。Brother应用程序也是用PHP编写的,可以连接,但我的应用程序不能。我猜它可能是一个与MySQL相关的PHP配置

我的应用程序使用PDO,而兄弟应用程序使用 mysqli

brother应用程序与我的应用程序运行在同一台服务器上, 并连接到同一目标服务器


任何帮助都将不胜感激。

对我来说,是SELinux造成了以下问题:

[root@server ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted [root@server ~]# setenforce 0 [root@server ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: enforcing Policy version: 24 Policy from config file: targeted
setsebool-p httpd_can_network_connect=1

您写道我仍然可以使用MySQL workbench并通过命令行界面从完全相同的系统使用完全相同的用户名和密码连接到目标数据库?试图排除明显的…“现在选择”为$row我没有掌握什么。您是否检查了包含DB服务器凭据的两个文件的编码?也许你的密码使用了一些奇特的非ASCII字符…哈哈,弗雷德,我太紧张了,我只调整了我在另一个项目中使用的测试代码的一半。。我会纠正的。而且,是的,我使用完全相同的系统/用户名/密码进行连接,唯一的区别是使用Workbench正常,使用CLI正常,brother应用程序使用mysqli成功连接,但我无法使用PDO或mysqlibesides进行连接。。。MySQL使用不同的错误消息拒绝用户“示例”@“使用密码的主机的访问:是,当用户名和密码组合错误时。我明白了,这一问题已经过去几年了,当时我从未想到selinux,我作为系统管理员获得了更多的经验,我承认selinux可能是这个问题的根源。