首页 > 解决方案 > 仅在通过 Apache2 连接时远程 MySqli 连接超时

问题描述

我在Ubuntu 18.04 Apache EC2 机器/服务器 - 172.2.27.1上遇到问题,mysqli 没有连接到MariaDB 服务器 - 172.2.27.2(远程 mysqli 服务器),但它通过 localhost 连接(目前是 172.2.27.1 机器也安装了 MariaDB),与 172.2.27.2 的远程连接也在终端上建立:

mysql -h 172.2.27.2 -u test -p(在 172.2.27.1 机器上)

无法理解它的确切问题是什么。我已尝试调试所有可能的位置,但找不到任何位置。

与 Apache 连接时出现错误:

Object
(
    [affected_rows] => 
    [client_info] => 
    [client_version] => 50012
    [connect_errno] => 2002
    [connect_error] => Connection timed out
    [errno] => 
    [error] => 
    [error_list] => 
    [field_count] => 
    [host_info] => 
    [info] => 
    [insert_id] => 
    [server_info] => 
    [server_version] => 
    [stat] => 
    [sqlstate] => 
    [protocol_version] => 
    [thread_id] => 
    [warning_count] => 
)

PS:Machine 和 EC2 实例上都没有防火墙规则问题。我已经检查过了。连接到 Internet 上远程 MariaDB 服务器的所有可用代码都给出相同的结果。它不是代码问题,可能是一些 apache 扩展问题或 PHP 问题。服务器 172.2.27.1 无法连接到 Internet 上的任何其他 MariaDB 服务器。它仅适用于本地主机,而不适用于其他任何东西。

标签: phpmysqlubuntumysqlimariadb

解决方案


看起来您还没有为远程地址配置数据库。设置我的.cnf

[mysqld]
skip-networking=0
skip-bind-address

然后设置 mysql.user

GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.2.27.%' 
  IDENTIFIED BY 'password' WITH GRANT OPTION;

之后重新启动所有进程查看此以供参考: https ://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/


推荐阅读