【问题标题】:Cannot connect to remote DB via CodeIgniter无法通过 CodeIgniter 连接到远程数据库
【发布时间】:2019-11-13 13:02:33
【问题描述】:

我在 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. 编写了一个普通的 PHP 脚本来连接 DB 并在应用服务器上运行它,它也可以正常工作。
  4. 但是,无法将远程服务器上的 CI 应用程序连接到数据库服务器。

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

【问题讨论】:

    标签: php mysql codeigniter rhel7


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      setsebool -P httpd_can_network_connect 1 
      setsebool -P httpd_can_network_connect_db 1
      

      Source

      【讨论】:

        猜你喜欢
        • 2011-12-27
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2014-01-13
        • 2019-10-16
        • 2016-10-29
        相关资源
        最近更新 更多