php - 仅在通过 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 服务器。它仅适用于本地主机,而不适用于其他任何东西。
解决方案
看起来您还没有为远程地址配置数据库。设置我的.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/
推荐阅读
- database - 如何仅更新数据库转储中的某些属性(sql/text/csv 或任何其他格式)
- java - 错误:缺少 JavaFX 运行时组件,需要运行此应用程序(使用 Maven)
- ios - Swift - 在 swift 类中使用 AppDelegate
- java - Java 上是否有任何堆外无锁数据结构(列表、集合、映射等)?
- spinnaker - Spinnaker 管道未删除已删除的 gcr 图像标签
- c - 在 C 中的 pthread 之间共享数据
- python - 如何将 pandas 数据框插入现有的 postgres sql 数据库?
- swift - 将变量添加到已保存的用户默认变量
- python - 如何将列与熊猫连接?
- javascript - 我怎么能以这种方式格式化这些数据?