Laravel 的 Artisan 无法连接到数据库,抛出错误“SQLSTATE[HY000] [2002]”

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16248786/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 07:44:19  来源:igfitidea点击:

Laravel's Artisan Can't Connect to Database, Throws Error "SQLSTATE[HY000] [2002]"

phpmysqldatabaselaravel

提问by abhisek

I have the following migration:

我有以下迁移:

<?php

class Create_Users_Table {

    /**
     * Make changes to the database.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function($table){
            $table->increments('id');
            $table->string('username');
            $table->string('password');
            $table->timestamps();
        });
    }

    /**
     * Revert the changes to the database.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }

}

When I run php artisan migrate, I get the following error:

当我运行时php artisan migrate,出现以下错误:

Warning: PDO::__construct(): [2002] No connection could be made because the target machine actively  (trying to connect via tcp://127.0.0.1:3306) in C:\xampp\htdocs\snip\laravel\database\connectors\mysql.php on line 33

Call Stack:
    0.0007     326008   1. {main}() C:\xampp\htdocs\snip\artisan:0
    0.0312    1527392   2. require('C:\xampp\htdocs\snip\laravel\cli\artisan.php') C:\xampp\htdocs\snip\artisan:24
    0.0414    2067048   3. Laravel\CLI\Command::run() C:\xampp\htdocs\snip\laravel\cli\artisan.php:42
    0.0448    2171864   4. Laravel\CLI\Tasks\Migrate\Migrator->run() C:\xampp\htdocs\snip\laravel\cli\command.php:49
    0.0448    2171864   5. Laravel\CLI\Tasks\Migrate\Migrator->migrate() C:\xampp\htdocs\snip\laravel\cli\tasks\migrate\migrator.php:52
    0.0448    2171928   6. Laravel\CLI\Tasks\Migrate\Resolver->outstanding() C:\xampp\htdocs\snip\laravel\cli\tasks\migrate\migrator.php:69
    0.0448    2172368   7. Laravel\CLI\Tasks\Migrate\Database->ran() C:\xampp\htdocs\snip\laravel\cli\tasks\migrate\resolver.php:53
    0.0448    2172368   8. Laravel\CLI\Tasks\Migrate\Database->table() C:\xampp\htdocs\snip\laravel\cli\tasks\migrate\database.php:61
    0.0454    2209248   9. Laravel\Database::connection() C:\xampp\htdocs\snip\laravel\cli\tasks\migrate\database.php:81
    0.0471    2287344  10. Laravel\Database::connect() C:\xampp\htdocs\snip\laravel\database.php:52
    0.0482    2302840  11. Laravel\Database\Connectors\MySQL->connect() C:\xampp\htdocs\snip\laravel\database.php:66
    0.0482    2305032  12. PDO->__construct() C:\xampp\htdocs\snip\laravel\database\connectors\mysql.php:33

SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.

I am on Win7 and XAMPP running PHP 5.4. Is there something I am missing?

我在 Win7 和 XAMPP 上运行 PHP 5.4。有什么我想念的吗?

Edit: Here are the DB config inside database.php:

编辑:这是 database.php 中的数据库配置:

'connections' => array(

        ...

        'mysql' => array(
            'driver'   => 'mysql',
            'host'     => '127.0.0.1',
            'database' => 'makeitsnappy',
            'username' => 'root',
            'password' => '',
            'charset'  => 'utf8',
            'prefix'   => '',
        ),
...
)

Also, the target machine is my local server and I have full control over it.

此外,目标机器是我的本地服务器,我可以完全控制它。

采纳答案by Oskar

There is troubles with DB config. Check your dsn string or hostname and db driver type.

数据库配置有问题。检查您的 dsn 字符串或主机名和数据库驱动程序类型。