gpt4 book ai didi

php - SQLSTATE[HY000] [2003] 无法连接到 'XXX.XXX.XXX.XXX' (60) 上的 MySQL 服务器

转载 作者:可可西里 更新时间:2023-11-01 07:30:36 25 4
gpt4 key购买 nike

我正在使用远程数据库在 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();

当我运行它时,我得到以下输出:

Error!: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '10.16.50.87' (60)

我仍然可以使用 MySQL Workbench 和命令行界面连接到目标数据库。

来自 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.

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

如有任何帮助,我们将不胜感激。

最佳答案

对我来说,是 SELinux 导致了问题:

[root@server ~]# sestatusSELinux status:                 enabledSELinuxfs mount:                /selinuxCurrent mode:                   enforcingMode from config file:          enforcingPolicy version:                 24Policy from config file:        targeted[root@server ~]# setenforce 0[root@server ~]# sestatusSELinux status:                 enabledSELinuxfs mount:                /selinuxCurrent mode:                   permissiveMode from config file:          enforcingPolicy version:                 24Policy from config file:        targeted

Run below as root:

setsebool -P httpd_can_network_connect=1

关于php - SQLSTATE[HY000] [2003] 无法连接到 'XXX.XXX.XXX.XXX' (60) 上的 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23687053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com