为什么我的 php 代码没有连接到我的远程 MySql 数据库?
Why is my php code not connecting to my remote MySql database?
我正在尝试连接到远程 MySql 数据库,但收到此错误消息:
警告:mysqli_connect(): (HY000/2002): 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机失败回复。在 C:\myLocalDiectory\RemoteConn.php 第 9 行 "Resource not found" 错误 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() . ")"
);
}
?>
我错过了什么吗?感谢您的帮助!
define("DB_USER", "userName");
尝试 root
而不是 userName
并定义 DB_HOST
.
我要检查的第一件事(如果您还没有这样做的话)是您实际上可以从 运行 是您的 PHP 脚本的计算机连接到数据库。这可以排除网络或防火墙问题。
第一件事是对服务器执行 ping 操作。在 DOS 提示符下 运行:
ping servername
其中 "servername" 与您在上面的 PHP 脚本中输入的字符串相同。如果这没有回复类似于下面的字符串,具体来说,第一个单词不是 "Reply":
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
这意味着执行 PHP 脚本的计算机 运行 与 mysql 服务器之间很可能没有连接。然后我会检查服务器和计算机是否正确连接到网络,服务器是否启动,以及您的计算机 运行 宁 PHP 脚本或服务器上是否没有防火墙。
现在,如果您上面的测试显示 "Reply" 到 ping,您可以测试是否可以从 php 服务器连接到 Mysql 服务。为此,您可以使用 Mysql workbench (http://dev.mysql.com/downloads/workbench/) 并从那里创建与您提供给脚本的数据库参数的连接。如果您无法与 Mysql workbench 连接,您可能需要禁用 Mysql 服务器中的防火墙、计算机 运行ning PHP 中的防火墙,或者启用 Mysql 服务器以接受您在 PHP 脚本中使用的数据库和用户名的远程连接(某些发行版 Mysql 服务器安装为仅接受本地连接以确保安全)。
如果问题是服务器权限问题(例如用户只能在本地连接而不能从远程计算机连接),您可以使用 GRANT 命令在 Mysql 服务器中启用权限:http://dev.mysql.com/doc/refman/5.1/en/grant.html
我正在尝试连接到远程 MySql 数据库,但收到此错误消息:
警告:mysqli_connect(): (HY000/2002): 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机失败回复。在 C:\myLocalDiectory\RemoteConn.php 第 9 行 "Resource not found" 错误 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() . ")"
);
}
?>
我错过了什么吗?感谢您的帮助!
define("DB_USER", "userName");
尝试 root
而不是 userName
并定义 DB_HOST
.
我要检查的第一件事(如果您还没有这样做的话)是您实际上可以从 运行 是您的 PHP 脚本的计算机连接到数据库。这可以排除网络或防火墙问题。
第一件事是对服务器执行 ping 操作。在 DOS 提示符下 运行:
ping servername
其中 "servername" 与您在上面的 PHP 脚本中输入的字符串相同。如果这没有回复类似于下面的字符串,具体来说,第一个单词不是 "Reply":
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
这意味着执行 PHP 脚本的计算机 运行 与 mysql 服务器之间很可能没有连接。然后我会检查服务器和计算机是否正确连接到网络,服务器是否启动,以及您的计算机 运行 宁 PHP 脚本或服务器上是否没有防火墙。
现在,如果您上面的测试显示 "Reply" 到 ping,您可以测试是否可以从 php 服务器连接到 Mysql 服务。为此,您可以使用 Mysql workbench (http://dev.mysql.com/downloads/workbench/) 并从那里创建与您提供给脚本的数据库参数的连接。如果您无法与 Mysql workbench 连接,您可能需要禁用 Mysql 服务器中的防火墙、计算机 运行ning PHP 中的防火墙,或者启用 Mysql 服务器以接受您在 PHP 脚本中使用的数据库和用户名的远程连接(某些发行版 Mysql 服务器安装为仅接受本地连接以确保安全)。
如果问题是服务器权限问题(例如用户只能在本地连接而不能从远程计算机连接),您可以使用 GRANT 命令在 Mysql 服务器中启用权限:http://dev.mysql.com/doc/refman/5.1/en/grant.html