因此,我在尝试与位于 Digital Ocean 主机 (Ubuntu) 上的远程 MySQL 服务器通信时遇到了问题。我的另一台主机位于 IPOWER 上,但它们的 SQL 功能不太好,所以我想让 IPOWER 上的 PHP 文件与 Digital Ocean 上的 MySQL 数据库通信。
但是我一直收到错误“连接被拒绝”。
从 IPOWER 角度来看,情况如下:
mysqli_connect('$myDigitalOceanIP', '$myUserName', '$myPassword', 'database', '3306');
在 Digital Ocean 方面我做了以下工作:
解除了防火墙和 IPTables 对 3306 端口的限制
在 MySQL 中创建了一个与 $myUserName 相符的新用户,该用户具有 Select、Insert 和 Update 权限,可以从任何 IP 进行连接。
刷新 MySQL 控制台中的权限并重新启动 MySQL 和 Apache 服务
确认MySQL正在监听端口3306。
编辑 my.cnf 文件,将其
bind-address
注释掉,以便可以接受本地主机之外的连接。
尽管如此,我仍然被拒绝连接。请给我更多建议!
另外,我应该查看错误日志吗?Apache 访问和错误日志没有提供任何信息,我找不到 SQL 错误日志。我必须以某种方式启用它吗?
答案1
事实证明我曾是一切正常,问题出在 IPOWER 方面。我让一个朋友远程连接到 Digital Ocean 上的 SQL 服务器,他在五秒钟内就完成了连接。
这里的教训是不要让客户选择主机,不要使用像 IPOWER 这样的糟糕主机,它会建议您降级 PHP 并无缘无故地干扰您的远程连接。
按照问题中概述的步骤应该可以为将来的任何人解决这个问题,只要他们使用允许他们自己配置选项的主机并且不会故意试图弄乱它们。