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

时间:2019-07-02 20:56:51

标签: php mysql codeigniter rhel7

我正在RHEL7虚拟机上运行CodeIgniter应用程序。我正在尝试将其连接到另一个远程数据库服务器。我得到一个htmlentities()

我尝试了以下方法:

  1. 使用
    通过App服务器上的命令行成功连接到DB服务器 printf("%s \n", htmlentities($row['Line_Code'])); ,然后输入密码。我进入了MySQL CLI。成功
  2. 已成功通过本地应用程序通过CI应用程序连接到数据库服务器。
    我用本地应用程序上的凭据设置了Message: mysqli::real_connect(): (HY000/2002): Permission denied,并且能够连接到远程数据库。
  3. 编写了一个普通的PHP脚本以连接到数据库并将其放在App服务器上,并且也可以正常工作。
  4. 但是,无法将远程服务器上的CI应用程序连接到DB服务器。

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

2 个答案:

答案 0 :(得分:1)

可能的解决方案在这里: SQLSTATE[HY000] [2002] Permission denied 似乎问题出在从Web服务器HTTP线程连接到MySQL上-正如您提到的,它可以在CLI中正常工作-。

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

答案 1 :(得分:0)

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

setsebool -P httpd_can_network_connect 1 
setsebool -P httpd_can_network_connect_db 1

Source