【问题标题】:No connection could be made using mysql_* API [duplicate]无法使用 mysql_* API 建立连接 [重复]
【发布时间】:2011-12-05 17:03:42
【问题描述】:

可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我尝试连接 mysql 数据库,但出现以下错误。

警告: mysql_connect(): [2002] 无法建立连接,因为目标机器在在线test.php 中主动(尝试通过tcp://localhost:3306 连接)5强>

警告mysql_connect(): 无法建立连接,因为目标机器主动拒绝。在 5 行的 test.php 中警告:mysql_close() 期望参数 1 是资源,在 15

行的 test.php 中给出布尔值

test.php:

<?php
$link = mysql_connect(localhost, dbuser, dbpass);
if (!$link) {
   die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

【问题讨论】:

  • 希望没有像 MTSQI 这样的东西
  • No connection could be made because the target machine actively refused it不是很清楚吗?
  • 这是我运行 test.php 文件时收到的警告
  • 您编写的代码试图在localhost 上打开与 MySQL 的连接,即运行 PHP 的同一台机器...您是否安装并运行了 MySQL?还是您尝试连接到不同的 MySQL 服务器?
  • 你的操作系统是什么?您是否更改/设置了任何防火墙设置?

标签: php mysql database-connection


【解决方案1】:

这发生在我们在 VirtualBox 的 Windows Server 2008 中的 IIS7 上运行 PHP 和 MySQL 时。事实证明,Windows 主机文件没有 localhost (127.0.0.1) 的 IPv4 条目,因此在 localhost 上找不到到 MySQL 的路由。

我们将以下内容添加到解决它的主机文件中:

127.0.0.1       localhost # Additional IPv4 entry
::1             localhost # Existing IPv6 localhost entry

参考:A brief description of PHP/MySQL Localhost via IPv4 & IPv6

【讨论】:

    【解决方案2】:

    MySQL 服务器未运行,或者您的防火墙阻止了端口 3306。

    此错误信息表示系统不接受 TCP 连接请求。

    【讨论】:

    • 哦,谢谢贾斯汀。但是对于这种类型的错误可以做些什么。
    • @jsk 回答 ManseUK 的上述问题。
    【解决方案3】:

    在 my.ini 中查找字符串:

    bind-address = 127.0.0.1
    

    从 localhost 更改为网络 IP。

    【讨论】:

    • 谢谢,这是在 Windows 服务器上为我完成的
    • 绑定地址 = 0.0.0.0
    【解决方案4】:

    尝试错误地连接到“localhost”时收到相同的消息(在 Windows 服务器上)。将连接字符串修复到正确的(远程)服务器后,错误消失了。

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 2014-02-12
      • 2014-10-17
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多