我正在PHP下开发一个Web应用程序与远程数据库,其中我有以下测试脚本:SQLSTATE [HY000] [2003]无法连接到MySQL服务器'XXX.XXX.XXX.XXX'(60)
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 MySQL服务器.16.50.87' (60)
我仍然可以连接使用MySQL工作台和命令行界面将数据传输到目标数据库。
从this question我得到远程服务器配置“可能是”的问题。然而,我们有一个连接到同一个服务器的“兄弟”PHP应用程序没有问题,唯一的区别就是用户名和密码,甚至当使用“兄弟”PHP应用程序证书在我的应用程序上运行测试时,同样的错误被显示。所以似乎只有我的PHP似乎有问题。
我正在PHP 5.5.3上运行测试,目标服务器正在运行MySQL 5.5 我的应用程序和Brother应用程序都在Staging Server A上运行,并且都应该连接到Staging Server B中的MySQL。 Brother应用程序也是用PHP编写的,能够连接,但我的不是。我猜它可能是一个MySQL相关的PHP配置。
我的应用程序使用
PDO
,而弟弟应用程序使用mysqli
。兄弟应用程序与我的应用程序 运行在同一台服务器上,并连接到同一台目标服务器。
任何帮助,将不胜感激。
你写的“我仍然可以连接到使用MySQL工作台,并通过命令行界面目标数据库” - 使用完全相同的用户名和密码完全一样的系统?试图排除明显的... – Kryten
*“'('SELECT NOW()')as $ row)'”* ---我没有把握什么。 –
您是否检查了包含数据库服务器凭证的两个文件的编码?也许你的密码使用了一些奇特的非ASCII字符...... – CodeZombie