无法通过 CodeIgniter 连接到远程数据库

Cannot connect to remote DB via CodeIgniter

我是 运行 RHEL7 虚拟机上的 CodeIgniter 应用程序。我正在尝试将它连接到另一个远程数据库服务器。我得到一个 Message: mysqli::real_connect(): (HY000/2002): Permission denied

我试过以下方法:

  1. 在应用程序服务器上通过命令行成功连接到数据库服务器,
    mysql -u username -p -h host.domain.edu -P 1234,然后是密码。我进入 MySQL CLI。成功
  2. 已从我的本地服务器通过 CI 应用程序成功连接到数据库服务器。
    我在本地应用程序上使用凭据设置了 config/database.php,并且我能够连接到远程数据库。
  3. 写了一个 vanilla PHP 脚本来连接到数据库并在应用程序服务器上运行它,它也工作正常。
  4. 但是,无法将远程服务器上的 CI 应用程序连接到数据库服务器。

端口已经打开,正在侦听来自我的应用程序服务器 IP 的流量,防火墙不是问题(我认为)。我做错了什么?

一个可能的解决方案在这里: SQLSTATE[HY000] [2002] Permission denied 因为看起来问题出在从 Web 服务器 HTTP 线程连接到 MySQL - 正如您提到的那样,它在 CLI 中正常工作 -.

我最近将 php 解决方案移至 Centos7 OS 时遇到了同样的问题。我所要做的就是允许 httpd 连接到网络。

在网上搜索后,我了解到 SELinux 正在阻止 httpd 连接到远程服务器。我必须将以下 2 个标志设置为 true,这对我有用。

setsebool -P httpd_can_network_connect 1 
setsebool -P httpd_can_network_connect_db 1

Source