远程MySqli连接仅在通过Apache2连接时超时



我在Ubuntu 18.04 Apache EC2 Machine/Server-172.2.27.1上遇到一个问题,即mysqli没有在那里连接到MariaDB Server-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:无论是在机器上还是在EC2实例上都没有防火墙规则问题。我已经查过了。连接到互联网上的远程MariaDB服务器的所有可用代码都给出了相同的结果。这不是代码问题,可能是apache扩展或PHP的问题。服务器172.2.27.1无法连接到互联网上的任何其他MariaDB服务器。它只在本地主机上工作,而不是在其他任何地方。

很可能防火墙规则正在阻止您的连接:(连接超时(

检查分配给Mysql/MariaDB实例的Security groups,并确保在MariaDB设置中正确允许Mysql port (3306)接受来自172.2.27.2或整个子网的inbound连接。

看起来您还没有为远程地址配置数据库。设置my.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/

相关内容

  • 没有找到相关文章

最新更新