错误:SQLSTATE[HY000] [2002] 无法建立连接,因为目标计算机主动拒绝它

2022-08-30 14:48:27

调试代码时突然发生错误。它具有有关与数据库的连接的一系列错误。

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进行过太多研究。感谢您的帮助。


答案 1

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

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

查看mysql日志,如果这没有告诉您任何内容,请查看该部分中的Windows事件日志。其中的错误消息可以很好地确定MySQL无法启动的原因。Windows -> Applications

有时,这是由 WAMPServers MySQL 拾取的另一个安装中的 my.ini 文件引起的,通常在 \windows 或 \windows\system32 文件夹中。搜索“my.ini”和“my.cnf”,如果你在\wamp之外的任何地方找到其中一个。然后删除文件夹结构,或者至少重命名它,以便找不到它。然后重新启动 MySQL 服务。


答案 2

在尝试将Drupal网站从一个本地主机迁移到另一个本地主机时,我遇到了类似的问题。从运行 XAMMP 的 Mac 到运行 WAMP 的 Windows。

这是我在尝试访问网站页面时不断收到的错误消息。

PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. 
in drupal_get_installed_schema_version() (line 155 of C:\wamp\www\chia\includes\install.inc).

在设置.php中,我已正确更改了所有内容,数据库名称,用户和密码。

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'mydatabasename',
      'username' => 'mydbusername',
      'password' => 'mydbpass',
      'host' => 'localhost',
      'port' => '8889',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

经过几个小时的无意识的谷歌搜索,我已将端口更改为空值:

'port' => '',

之后,网站正确加载。


推荐