Lumen`php artisan migrate`未连接到数据库

Lumen`php artisan migrate`未连接到数据库,php,laravel,lumen,Php,Laravel,Lumen,我对Laravel的流明微框架还不熟悉,以前也没用过Laravel 我想为移动应用程序制作Web服务。我遵循这个教程 我已在Linux基本服务器上成功安装Lumen 当我运行命令php-artisan-migrate时,我遇到了这个错误 [吊舱例外] SQLSTATE[HY000][2002]连接被拒绝 我在堆栈溢出上搜索找到了这个解决方案,但对我来说不起作用,例如这个 我没有得到任何其他的解决方案。如何继续?您的数据库凭据不工作,因此无法连接到数据库以运行迁移 尝试使用以下代码进行路由,以查看

我对Laravel的流明微框架还不熟悉,以前也没用过Laravel

我想为移动应用程序制作Web服务。我遵循这个教程

我已在Linux基本服务器上成功安装Lumen

当我运行命令
php-artisan-migrate
时,我遇到了这个错误

[吊舱例外]

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

我在堆栈溢出上搜索找到了这个解决方案,但对我来说不起作用,例如这个


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

您的数据库凭据不工作,因此无法连接到数据库以运行迁移

尝试使用以下代码进行路由,以查看数据库是否已连接:

$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...';
    }
});
然后访问
/数据库
路径查看结果

您需要在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中查找数据库套接字配置的正确方向。

您的数据库凭据不工作,因此无法连接到数据库以运行迁移

尝试使用以下代码进行路由,以查看数据库是否已连接:

$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...';
    }
});
然后访问
/数据库
路径查看结果

您需要在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中查找数据库套接字配置的正确方向。

您是否正确设置了带有数据库信息的.env文件?它似乎没有正确的数据库凭据,或者它当前未运行。您是否在
.env
文件中配置了数据库?我的env文件正确,我的数据库信息也正确。从昨天开始我什么都没做,今天我只是再试一次php artisan迁移,它就成功了:)我想我是缓存问题可能是我不知道-_-您是否正确设置了带有数据库信息的.env文件?它似乎没有正确的数据库凭据,或者它当前未运行。您是否在
.env
文件中配置了数据库?我的env文件正确,我的数据库信息也正确。从昨天开始我什么都没做,今天我只是再试一次php artisan迁移,它就成功了:)我想我是缓存问题可能是我不知道-_-非常感谢您宝贵的回答,我今天再试一次,migrate命令成功了:)我认为这是缓存问题。。。当我需要测试我的db连接时,我会尝试你的答案:)非常感谢你宝贵的答案,我今天再试一次,迁移命令成功了:)我认为这是缓存问题。。。当我需要测试我的db连接时,我将尝试您的答案:)