【问题标题】:SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XXX.XXX.XXX.XXX' (60)SQLSTATE[HY000] [2003] 无法连接到“XXX.XXX.XXX.XXX”上的 MySQL 服务器 (60)
【发布时间】:2018-07-06 15:30:16
【问题描述】:

我正在使用远程数据库在 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”上的 MySQL 服务器 (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 工作台和通过命令行界面连接到目标数据库” - 从完全相同的系统使用完全相同的用户名和密码?试图排除明显的......
  • "('SELECT NOW()') as $row)" --- 我没有掌握什么。
  • 您是否检查过包含数据库服务器凭据的两个文件的编码?也许您的密码使用了一些花哨的非 ASCII 字符...
  • LOL fred,我压力很大,我只调整了我在另一个项目中使用的测试代码的一半。我会纠正的。而且,是的,我使用完全相同的系统/用户名/密码连接,唯一的区别是使用 Workbench 可以,使用 CLI 可以,兄弟应用程序使用 mysqli 成功连接,但我无法使用 PDO 或 mysqli 连接跨度>
  • 此外...当用户名和密码组合错误时,MySQL 使用不同的错误消息 Access denied for user 'example'@'host (using password: YES)

标签: php mysql


【解决方案1】:

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

[root@server ~]# sestatus SELinux 状态:启用 SELinuxfs 挂载:/selinux 当前模式:强制执行 配置文件中的模式:强制执行 政策版本:24 配置文件中的策略:有针对性 [root@server ~]# setenforce 0 [root@server ~]# sestatus SELinux 状态:启用 SELinuxfs 挂载:/selinux 当前模式:许可 配置文件中的模式:强制执行 政策版本:24 配置文件中的策略:有针对性

Run below as root:

setsebool -P httpd_can_network_connect=1

【讨论】:

  • 我明白了,自从这个问题出现以来已经有几年了,selinux 从来没有出现在我的脑海中,我作为系统管理员获得了更多的经验,我承认 selinux 可能是这个问题的根源。
猜你喜欢
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
  • 2016-08-21
  • 1970-01-01
  • 2015-12-16
  • 2013-04-01
  • 1970-01-01
  • 2014-06-25
相关资源
最近更新 更多