我不确定我使用的术语是否正确,因此如果您需要,请要求澄清:)。
无论如何,我通过 HostEasySolutions(服务器 A)进行托管。它带有一个 MySql 数据库,使用 PHPMyAdmin 作为前端。在服务器A上,我添加了一些PHP文件来访问数据库,并且工作正常。
如果我通过 DreamHost(服务器 B)将 php 文件复制到其他服务器,我将无法连接到数据库。我收到错误:无法连接到“combinedsystems.ca”(110) 上的 MySQL 服务器
在服务器 A 上的 cPanel 中,我将服务器 B 的 IP 添加到远程数据库访问主机中,我还添加了通配符“%”,只是为了看看是否可以使其正常工作...但仍然可以找不到服务器。
我不确定发生了什么,据我所知没有防火墙。
唯一让我印象深刻的是,如果我访问服务器 A 的 PHPmyAdmin,它会显示 Server: Localhost via UNIX socket
,而对于服务器 B 的 PHPMyAdmin,它会显示:服务器:通过 TCP/IP 的 mysql.pdem.info
最佳答案
大多数(全部?)托管公司都在防火墙上关闭了端口 3306。
你需要做什么:
- 在数据库中添加远程数据库访问
- 编辑 my.cnf 以监听所有接口(interface)。默认 mysql 仅监听 localhost
大多数时候你都不走运!即使没有防火墙(非常不安全),您也无法访问 my.cnf
关于php - 无法连接到远程主机上的 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334443/