我正在尝试连接到远程 MySql 数据库,但收到以下错误消息:
警告:mysqli_connect():(HY000/2002):连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败。在 C:\myLocalDiectory\RemoteConn.php 中的第 9 行“找不到资源”错误 404。
这是我尝试使用的 php 文件:
<?php
define("DB_SERVER", "serverName");
define("DB_USER", "userName");
define("DB_PASS", "password");
define("DB_NAME", "dbName");
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
我错过了什么吗?谢谢你的帮助!
我要检查的第一件事(如果您还没有这样做)是您实际上可以从运行 PHP 脚本的计算机连接到数据库。这是为了排除网络或防火墙问题。
第一件事是 ping 服务器。在 DOS 提示符下运行:
ping servername
其中“servername”与您在上面的 PHP 脚本中放入的字符串相同。如果这没有回复类似于下面的字符串,具体来说,第一个单词不是“Reply”:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
这意味着运行 PHP 脚本的计算机与 mysql 服务器之间很可能没有连接。然后我会检查服务器和计算机是否正确连接到网络、服务器是否已启动、运行 PHP 脚本的计算机或服务器上是否没有防火墙。
现在,如果上面的测试显示对 ping 的“回复”,您可以测试是否可以从 php 服务器连接到 Mysql 服务。为此,您可以使用 Mysql 工作台(http://dev.mysql.com/downloads/workbench/ http://dev.mysql.com/downloads/workbench/)并从那里创建与您为脚本提供的数据库参数的连接。如果您无法连接 Mysql Workbench,您可能需要禁用 Mysql 服务器中的防火墙、运行 PHP 的计算机中的防火墙,或者启用 Mysql 服务器以接受您在 PHP 脚本中使用的数据库和用户名的远程连接(为了安全起见,某些发行版安装了 Mysql 服务器,只接受本地连接)。
如果问题是服务器中的权限问题(例如用户只能在本地连接而不能从远程计算机连接),则可以使用 GRANT 命令在 Mysql 服务器中启用该权限:http://dev.mysql.com/doc/refman/5.1/en/grant.html http://dev.mysql.com/doc/refman/5.1/en/grant.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)