可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我尝试连接mysql数据库。但是我收到了以下错误。
警告:
mysql_connect()
:[2002]无法建立连接,因为目标计算机在tcp://localhost:3306
上主动(尝试通过test.php
进行连接)在线 5警告:
mysql_connect():
由于目标计算机主动拒绝连接,因此无法建立连接。在test.php上的行 5 警告:mysql_close()
期望参数1为资源,布局为test.php
15
test.php的:
<?php
$link = mysql_connect(localhost, dbuser, dbpass);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
答案 0 :(得分:8)
在运行PHP&amp; VirtualBox中的Windows Server 2008中的IIS7上的MySQL。事实证明,Windows主机文件没有localhost(127.0.0.1)的IPv4条目,因此找不到localhost到MySQL的路由。
我们将以下内容添加到解析它的hosts文件中:
127.0.0.1 localhost # Additional IPv4 entry
::1 localhost # Existing IPv6 localhost entry
参考:A brief description of PHP/MySQL Localhost via IPv4 & IPv6
答案 1 :(得分:1)
MySQL服务器未运行,或者您有防火墙阻止端口3306。
此错误消息表示系统未接受TCP连接请求。
答案 2 :(得分:1)
在my.ini中查找字符串:
bind-address = 127.0.0.1
从localhost更改为网络IP。
答案 3 :(得分:1)
错误地尝试连接到'localhost'(在Windows服务器上)时收到同样的消息。将连接字符串修复到正确的(远程)服务器后,错误消失。