【问题标题】:Laravel: SQLSTATE HY000 2002 No connection could be made because the target machine actively refused itLaravel: SQLSTATE HY000 2002 No connection could be made because the target machine主动拒绝它
【发布时间】:2016-07-25 08:07:30
【问题描述】:

我正在尝试在我的本地机器上使用 Laravel 5.2 的 Homestead 中的 php artisan migrate 将迁移迁移到 MySQL 数据库。我不断收到此错误:

[PDOException]

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

我可以使用 MySQL 工作台很好地连接到数据库,但我想使用 laravel 的迁移功能。

我的database.php 看起来像这样:

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '192.168.10.10'),
        'port' => env('DB_PORT', '33060'),
        'database' => env('DB_DATABASE', 'laraveldb'),
        'username' => env('DB_USERNAME', 'homestead'),
        'password' => env('DB_PASSWORD', 'secret'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],

以前有人遇到过这个问题吗?

【问题讨论】:

  • 检查这两个:'username' => env('DB_USERNAME', 'homestead'), 'password' => env('DB_PASSWORD', 'secret'),。那些是数据库的usernamepassword 吗?
  • 你的 apache 和 mysql 运行正常吗

标签: php mysql laravel


【解决方案1】:

在您的 .env 文件中使用这些默认设置:

DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

另外,请确保已创建 homestead 数据库。

问题是 .env 设置覆盖 database.php 设置。

Documentation

【讨论】:

  • 谢谢!我什至不知道那个文件存在。 Laravel Homestead 手册并没有说太多*。它位于 Laravel 安装文件夹中,因为它有一个奇怪的扩展名,Sublime 文本编辑器看不到它。在您的回答中,我还替换了DB_DATABASE=laraveldb 以匹配我在database.php 中的数据库名称
  • 很高兴能帮上忙。我还添加了指向 Homestead 文档的链接,也许这些信息也会对您有所帮助(例如标准 Homestead 端口、.env 相关信息等信息)。
【解决方案2】:

打开 xampp 然后你可以再试一次。谢谢你

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 2019-12-07
    • 2020-07-05
    • 1970-01-01
    • 2018-01-22
    • 2022-01-23
    • 2018-12-16
    • 2018-11-02
    • 2020-12-11
    相关资源
    最近更新 更多