-1

我使用 NetBeans 运行 PHP 代码。该代码用于更新我们公司服务器上的数据库表。所以我使用了代码:

$link = mysql_connect('192.168.X.X:X','X','X');
mysql_select_db('X',$link);
if (!$link) {die('Could not connect: ' . mysql_error());}
            echo 'Connected successfully';
            mysql_close($link);

但是当我单击运行时,会返回此错误消息:

( ! ) Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '192.168.0.140' (10060) in C:\wamp\www\database\index.php on line 9
( ! ) Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\database\index.php on line 10
Call Stack
4

3 回答 3

2

第一个错误是不言自明的。PHP 无法连接到给定主机上的数据库。为什么这可能需要您进一步调查(SQL 服务器是否正在运行?它是否配置为接受非本地连接?是否有防火墙保护 SQL 服务器正在侦听的端口?)

第二个错误是由于您没有费心检查连接是否成功而只是假设它成功了。如果无法建立连接,则 mysql_connect 将返回 false。您需要先检查这一点,然后才能确定您有一个有效的打开连接。

$link = mysql_connect('192.168.X.X:X','X','X');
if (false !== $link)
{
    mysql_select_db('X',$link);
    // Rest of your code goes here
}

顺便说一句,您应该考虑不推荐使用 mysql_* 函数。有更好的选择,例如 mysqli 或 PDO,您应该使用其中之一。PHP.net 上的手册页对替代方案提出了一些建议。

于 2012-10-17T12:32:32.603 回答
0

原因可能是

MySQL 服务器未运行。

MySQL 的配置文件指定它只在某个 IP:Port 上侦听,并且您没有通过指定的地址进行通信

用于向 MySQL 服务器进行身份验证的用户名不允许从客户端计算机的 IP 地址/主机连接

有关更多详细信息,请查看以下链接

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

于 2012-10-17T12:33:58.273 回答
0

你可以检查你的mysql日志来检测问题。很难说到底是什么问题。可能是您的服务器未配置为通过 ip 进行远程连接。如果这是您可以使用的问题,前提是脚本在同一台服务器上

$link = mysql_connect('localhost','X','X') or die('error connecting to db');
于 2012-10-17T12:43:40.513 回答