加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – SQLSTATE [HY000] [2003]无法连接到’XXX.XXX.XXX.XXX’

发布时间:2020-12-13 17:30:41 所属栏目:PHP教程 来源:网络整理
导读:我正在使用远程数据库在 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 "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();

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

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

我仍然可以使用MySQL工作台和命令行界面连接到目标数据库.

从this question开始,我得知远程服务器配置“可能是”问题.但是,我们有一个“兄弟”PHP应用程序连接到同一台服务器没有问题,唯一的区别beetwen两个是用户名和密码,甚至当我的应用程序使用“兄弟”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 ~]# 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

Run below as root:

setsebool -P httpd_can_network_connect = 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读