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

Php 错误:SQLSTATE[HY000][2002]无法建立连接,因为目标计算机主动拒绝它,php,mysql,pdo,wamp,Php,Mysql,Pdo,Wamp,在调试代码时,突然发生了一个错误。 它有一系列与数据库连接有关的错误 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

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

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没有太多研究。
谢谢您的帮助。

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

在您的情况下,MySQL似乎还没有启动,因为您收到的消息表明,没有运行服务器,因此正在侦听请求

查看mysql日志,如果没有任何提示,请查看Windows事件日志,位于
Windows->Applications
部分。其中的错误消息可以很好地识别MySQL无法启动的原因


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

我在尝试将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).
在settings.php中,我已经正确地更改了所有内容:数据库名称、用户和密码

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'mydatabasename',
      'username' => 'mydbusername',
      'password' => 'mydbpass',
      'host' => 'localhost',
      'port' => '8889',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);
经过几个小时无意识的谷歌搜索,我将端口更改为空值:

'port' => '',

之后,站点将正确加载。

从目录中删除以下文件:

\wamp\bin\mysql\mysql5.6.17\ib_logfile0
\wamp\bin\mysql\mysql5.6.17\ib_logfile1
\wamp\bin\mysql\mysql5.6.17\ibdata1

这解决了我的问题。

重新启动wampServer。。。这应该可以解决问题。 如果没有。。
Resta

我尝试在安装了虚拟box/vagrant/homestead的Windows上运行“php artisan migrate”时遇到此错误

文档中说我必须在虚拟机上运行这个命令

这成功了


确保在当前项目文件夹中执行此操作。

可能对MySQL使用不同的端口


两个端口应该相同。

只需重新启动wamp服务器,然后运行php bin/magento cache:clean
您应该重新启动Xampp或正在运行的任何服务器,确保sq我也遇到了同样的问题,我在网上搜索了很多次,但没有找到适合我的解决方案。最后,我偶然发现mysql使用的是端口3308,而不是端口3306,端口3306似乎是默认的,,,我将端口改为3306,令人惊讶的是它居然工作了:)。。。。(我的问题是将php连接到mysql数据库,php我的管理页面显示得非常完美)

我也遇到了同样的问题,我不记得启动我的WAMPSERVER,因此无法建立连接。。。
您所需要做的就是再次启动或重新启动WAMPSERVER或XAMMP,它就会工作

如果您在同一台机器上同时使用XAMPP和WAMP,则只需插入确切的数据库详细信息并重新启动mysql服务器即可添加sql server端口号

<connection>
                <host><![CDATA[localhost:3390]]></host>
                <username><![CDATA[root]]></username>
                <password><![CDATA[]]></password>
                <dbname><![CDATA[sritoss_1910]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
</connection>

1.

我也遇到了同样的问题,我刚刚删除了mysql/数据文件中的所有日志文件,如:

mysql中继站-2020@002d...

只要这些文件就行了。

我希望这有帮助。

确保您的WAMP服务器(或XAMP)正常工作,即WAMP图标应为绿色。

检查MySQL服务器是否正在运行。如果您不运行apache服务器(或您使用的任何服务器),可能会发生这种情况。运行本地服务器并刷新页面后。

是否打开端口3306抱歉,我不知道那是什么。先生,我在哪里可以找到它?要么主机上没有运行MySQL服务器,要么端口被防火墙阻止。无论哪种方式,这都不是您的程序的问题,而是服务器管理员需要解决的问题。是否需要卸载并重新安装它?如果您在本地计算机上运行此程序,请尝试重新启动。MySQL正在拒绝您的连接尝试,正如错误消息所说的那样。是的8889将是MySQL的MAC特定端口号(或配置为该端口号),在wamp下,通常为3306。您需要在Windows上使用端口3306。我在将.env文件从生产复制到本地计算机时遇到了相同的错误。这是一个太具体的答案,这个问题甚至不意味着OP正在使用任何类型的虚拟机,php应用程序无法连接到mysql的问题可能是一个完全不同的问题,这是销毁所有INNODB数据库的好方法。所以,除非你明白这一点,否则不要这样做。你的答案不完整。(如何处理sq?)请更新。请记住,这个答案已经给出,问题本身已经有5年了。OP可能会继续。你能详细说明一下吗?请给你的答案添加一些解释,以便其他人可以从中学习-这个问题已经有六年历史了,并且已经有了一些经过投票的答案。你必须指定你的服务器端口号,因为如果你在你的电脑中安装多个xampp,那么你的端口号将不同,这就是为什么默认端口号的原因3306找不到,正在出错。为此,必须指定服务器端口号。
'dsn' => 'mysql:host=localhost;port=3307;dbname=yourdbname',
'dsn' => 'mysql:host=localhost;port=3307;dbname=yourdbname',