【问题标题】:Database Laravel php artisan migrate connection refused数据库 Laravel php artisan migrate 连接被拒绝
【发布时间】:2017-10-03 22:13:26
【问题描述】:

当我使用“php artisan migrate”时,我收到以下错误消息:

[照亮\数据库\查询异常]
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations)

[PDO异常]
SQLSTATE[HY000] [2002] 连接被拒绝

我已经在一台带有 XAMPP 的 Mac 上安装了 Laravel,并且有以下设置:

数据库.php

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我尝试了几种可以在网上找到的解决方案,但到目前为止都没有奏效。

【问题讨论】:

  • 如果您安装了 XAMPP,那么这些很可能不是正确的数据库设置。你必须弄清楚它们是什么并将它们放在你的 .env 文件中。
  • 啊,就这么简单,谢谢!
  • 我在 Mac 中使用 Mamp,我也有同样的问题。我该如何解决?谢谢

标签: laravel xampp connection laravel-artisan


【解决方案1】:

首先创建您的数据库。在此处阅读更多信息:http://www.complete-concrete-concise.com/web-tools/creating-a-mysql-database-using-xampp

假设您的新数据库名为:my_db。

在你的 .env 中使用它:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=root
DB_PASSWORD=""

【讨论】:

    【解决方案2】:

    这确实很烦人,但是将DB_HOST=127.0.0.1 更改为DB_HOST=localhost 可以解决问题。试试看(显然你的文件权限一定是对的)

    【讨论】:

    • 有什么想法吗??
    • 感谢马西尔! (这对于 laravel 开发人员来说有点史诗般的失败!!)
    【解决方案3】:

    您好,您在 env.file 中没有 DB_SOCKET= /path/to/socket,而您在 database.php 文件中有 unix_socket => env('DB_SOCKET', '')

    你可以通过$ mysql_config --socket获得/path/to/socket

    【讨论】:

      【解决方案4】:

      这来晚了,但它可能会对某人有所帮助。我有同样的错误,原来这是我的 .env 文件中的错字。它不是 DB_HOST,而是 B_HOST。在您的情况下,它可能是其他一些 env 键。只要仔细观察,您就会发现您有一个格式错误的 env 文件。

      【讨论】:

        【解决方案5】:

        我的解决方案与我在网上找到的其他任何地方都不同。

        我在不知不觉中在 Mac 上使用 XAMPP 的 VM(虚拟机)版本,它的功能与普通版本不同。 VM XAMPP interface looks like this.

        如果您使用的是 VM XAMPP,请将其卸载并安装 correct XAMPP version here.

        一旦我安装了新版本php artisan migrate 工作。

        【讨论】:

        • 谢谢,我试了好几次还是报错,没想到是虚拟机版本。
        • 谢谢。我浪费了这么多时间!
        • 那里有很好的答案。但是对于 OS X 的 XAMPP-VM 不能用 Laravel 解决这个问题吗?
        【解决方案6】:

        如果您使用的是 MAMP,则在您的 .env 文件中:

        DB_HOST=localhost
        DB_PORT=3306
        DB_DATABASE=homestead
        DB_USERNAME=root
        DB_PASSWORD=root
        

        【讨论】:

          【解决方案7】:

          我正在使用 Vagrant 机器来运行整个程序,但我错误地在自己的机器上运行命令。我认为这可能会对某人有所帮助。

          【讨论】:

            【解决方案8】:

            如果有人在使用Docker 时遇到这种情况,我有一个多阶段构建,第一个容器运行依赖项安装,第二个容器只是运行时。我没有意识到的是,使用 Laravel 脚本安装会生成一个缓存配置 (bootstrap/cache/config.php),而不是 config/database.php 文件。

            将以下内容添加到 Dockerfile 作为最后一步就可以了:

            RUN php artisan config:clear
            

            【讨论】:

            • 在 MacOS 上使用 XAMPP VM 版本时,这也适用于我。谢谢!
            猜你喜欢
            • 1970-01-01
            • 2016-09-24
            • 2015-05-11
            • 2019-06-07
            • 2018-11-17
            • 2021-11-24
            • 2018-11-12
            • 1970-01-01
            • 2017-08-27
            相关资源
            最近更新 更多