【问题标题】:ERROR: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it错误:SQLSTATE[HY000] [2002] 由于目标机器主动拒绝,无法建立连接
【发布时间】:2014-04-26 17:27:08
【问题描述】:

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

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 的研究不多。 谢谢你的帮助。

【问题讨论】:

  • 3306端口打开了吗
  • 对不起,我不知道那是什么。我在哪里可以找到那个先生?
  • 主机上没有运行 MySQL 服务器,或者端口被防火墙阻止。无论哪种方式,这都不是您的程序的问题,而是服务器管理员需要解决的问题。
  • 那我需要卸载重新安装吗?
  • 如果您在本地计算机上运行此程序,请尝试重新启动。 MySQL 拒绝您的连接尝试,正如错误消息所说的那样。

标签: php mysql pdo wamp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      'dsn' => 'mysql:host=localhost;port=3307;dbname=yourdbname',
      

      【讨论】:

      • 你能详细说明一下吗?
      • 请在您的答案中添加一些解释,以便其他人可以从中学习 - 这个问题已有六年历史,并且已经获得了一些赞成的答案
      • 你必须指定你的服务器端口号,因为如果你在你的电脑上安装了多个 xampp,那么你的端口号会有所不同,这就是为什么默认端口号 3306 没有找到并且出现错误的原因。为此,您必须指定您的服务器端口号。
      【解决方案4】:

      我遇到了同样的问题,我只是删除了mysql/data文件中的所有日志文件,例如:

      mysql-relay-bin - 2020@002d...

      只要这些文件就可以了。
      我希望这会有所帮助。

      【讨论】:

        【解决方案5】:

        如果您在同一台机器上同时使用 XAMPP 和 WAMP,请添加 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>
        

        【讨论】:

          【解决方案6】:

          您所要做的就是插入准确的数据库详细信息并重新启动您的 mysql 服务器

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:

              我遇到了同样的问题,我在网上搜索了很多,但没有解决方案对我有用。最后我偶然注意到 mysql 使用端口 3308 而不是默认的端口 3306,我将端口更改为3306,令人惊讶的是它起作用了:) ....(我的问题是将php连接到mysql数据库,php我的管理页面完美显示)

              【讨论】:

                【解决方案9】:

                你应该重启你的 Xampp 或者你正在运行的任何服务器,确保 sq

                【讨论】:

                • (运行 = 运行)。你的回答不完整。 (用 sq 做什么?)请更新。请记住,这个答案已经给出,并且问题本身已有 5 年历史。 OP 可能会继续前进。
                【解决方案10】:

                只需重启你的 wamp 服务器,然后运行 ​​php bin/magento cache:clean

                【讨论】:

                  【解决方案11】:

                  可能对 MySQL 使用不同的 Port,而不是在您的代码中使用

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

                  两个端口应该相同。

                  【讨论】:

                    【解决方案12】:

                    我在尝试在 Windows 上运行“php artisan migrate”时遇到此错误,并安装了虚拟盒子/流浪汉/宅基地。

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

                    成功了!!!

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

                    【讨论】:

                    • 这个答案太具体了,这个问题甚至不暗示OP正在使用任何类型的虚拟机,php应用程序无法连接到mysql的问题可能是一个完全不同的问题
                    【解决方案13】:

                    从目录中删除以下文件:

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

                    这解决了我的问题。

                    【讨论】:

                    • 这是销毁所有 INNODB 数据库的好方法。 所以除非你明白,否则不要这样做
                    【解决方案14】:

                    重新启动您的 wampServer...应该可以解决它。 如果没有.. 休息

                    【讨论】:

                      【解决方案15】:

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

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

                      查看 mysql 日志,如果没有任何提示,请查看 Windows 事件日志,位于 Windows -&gt; Applications 部分。那里的错误消息非常适合确定 MySQL 无法启动的原因。

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

                      【讨论】:

                        【解决方案16】:

                        在尝试将 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' => '',
                        

                        然后网站正确加载。

                        【讨论】:

                        • 是的,8889 将是 Mysql 的 MAC 特定端口号(或配置为该端口号),在 wamp 下通常为 3306。
                        • 您需要在 Windows 上使用 3306 端口,我在将 .env 文件从生产环境复制到本地计算机时遇到了同样的错误。
                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2022-08-05
                        • 2019-05-15
                        • 2016-03-03
                        • 2016-04-08
                        • 2019-02-01
                        • 2018-08-16
                        相关资源
                        最近更新 更多