错误:SQLSTATE\[HY000\] \[2002\] 由于目标机器主动拒绝,无法建立连接

新手上路,请多包涵

调试代码时突然出错。它有这一系列关于连接到数据库的错误。

 ERROR: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
( ! ) Fatal error: Uncaught exception 'PDOException' with message ' in C:\wamp\www\web\main\users.php on line 15
( ! ) PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. in C:\wamp\www\web\main\users.php on line 15

这是错误指向的代码

function __construct()
        {
            $this->con = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
        }

我不知道该怎么办,因为我通常不会遇到这样的问题,所以我对 WAMP 的研究不多。感谢您的帮助。

原文由 user3406220 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

如果 WAMP 图标为橙色,则其中一项服务尚未启动。

在您的情况下,看起来 MySQL 尚未启动,因为您收到的消息表明 没有服务器在运行,因此正在侦听请求。

查看 mysql 日志,如果没有告诉您任何内容,请查看 Windows -> Applications 部分中的 Windows 事件日志。里面的错误信息可以很好的判断MySQL启动失败的原因。

有时这是由 WAMPServers MySQL 从另一个安装中获取的 my.ini 文件引起的,通常位于 \windows 或 \windows\system32 文件夹中。搜索“my.ini”和“my.cnf”,如果您在 \wamp…. 文件夹结构之外的任何地方找到其中之一,则将其删除,或者至少重命名它,这样就不会找到它。然后重启MySQL服务。

原文由 RiggsFolly 发布,翻译遵循 CC BY-SA 3.0 许可协议

可能对 MySQL 使用与在代码中使用不同的 端口

在此处输入图像描述

 $conn = new PDO("mysql:host=".SERVER_NAME.";port=3307;dbname=".DB_NAME, DB_USER, DB_PASS);

两个 端口 应该相同。

原文由 ntthushara 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题