【问题标题】:Lumen `php artisan migrate` not connecting to the databaseLumen`php artisan migrate`未连接到数据库
【发布时间】:2017-03-02 16:13:40
【问题描述】:

我是 Laravel 的 Lumen 微框架新手,之前没用过 Laravel。

我想为移动应用程序制作 Web 服务。我正在关注本教程tutorial

我已经在 Linux 基础服务器上成功设置 Lumen

当我运行命令 php artisan migrate 时出现此错误

[POD 异常]

SQLSTATE[HY000] [2002] 连接被拒绝

我在 Stack Overflow 上搜索找到了这个解决方案,但对我没有用,例如这个 solution

我没有得到任何其他解决方案。我该如何继续?

【问题讨论】:

  • 您是否正确设置了包含数据库信息的 .env 文件?它似乎没有正确的数据库凭据或当前未运行。
  • 您是否在.env 文件中配置了数据库?
  • 我的 env 文件是正确的,我的数据库信息也正确。从昨天开始我什么都没做,今天我只是再试一次 php artisan migrate 就成功了 :) 我想我是缓存问​​题可能我不知道.. -_-

标签: php laravel lumen


【解决方案1】:

您的数据库凭据不起作用,因此您无法连接到数据库来运行迁移。

尝试使用此代码创建路由以查看您的数据库是否已连接:

$app->get('/database', function () use ($app) {
    $db = app()->make('db');

    if ( $db->connection()->getDatabaseName() )
    {
        return 'Connected to the DB: ' . $db->connection()->getDatabaseName();
    }
    else
    {
        return 'Unable to establish database connection...';
    }
});

然后访问/database路由查看结果。

您需要在 Lumen 的 .env 文件中设置您的数据库凭据,并确保您重新启动本地开发服务器以使 .env 文件生效。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=forge
DB_PASSWORD=password

另外,如果您将 MAMP 用于本地数据库,您可能需要做的一件事是指定您的套接字连接。您可以通过修改文件 bootstrap/app.php 并添加以下内容来做到这一点:

/**
 * Configuration
 */
$app['config']->set('database.connections.mysql.unix_socket', '/Applications/MAMP/tmp/mysql/mysql.sock');

这可能不是一个完美的复制粘贴解决方案,但值得考虑。它至少可以为您指明在 Lumen 中寻找数据库套接字配置的正确方向。

【讨论】:

  • 非常感谢您的宝贵回答,我今天再试一次,迁移命令已经奏效:) 我认为这是一个缓存问题...当我需要测试我的数据库时,我会尝试您的回答连接:)
猜你喜欢
  • 2017-10-03
  • 2018-11-18
  • 1970-01-01
  • 2020-08-03
  • 2018-08-23
  • 1970-01-01
  • 2017-11-27
  • 2020-03-10
  • 1970-01-01
相关资源
最近更新 更多