Laravel迁移过程中数据库未配置。

11

这可能是重复的问题。但我之前没有得到满意的答案。

我刚刚使用 git clone 克隆了一个 Laravel 项目。现在我尝试执行 php artisan migrate 命令,但是它返回以下错误。

[InvalidArgumentException]   
Database [] not configured.

migrate [--bench[="..."]] [--database[="..."]] [--force] [--path[="..."]] [--package[="..."]] [--pretend] [--seed]

我的app/config/database.php文件看起来是这样的:

    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'upgrade',
        'username'  => 'root',
        'password'  => 'root',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

我正在mysql中创建upgrade数据库。

有人能告诉我哪里做错了吗?

提前致谢。


请运行 php artisan env 命令以查看当前环境是什么。 - Bogdan
你使用哪个操作系统? - Fatih Kahveci
你是否有一个数据库用户'root',密码为'root'? - Andrew Mack
1
环境设置在 .env 文件中。 - Bogdan
1
对我来说,问题在于 PostgreSQL 的 DB_CONNECTION 设置不正确,应该是 pgsql - Mint
显示剩余2条评论
4个回答

11

我遇到了同样的问题。 我从GIT克隆了L5.1项目并执行了

composer install 
composer update 

我也配置了数据库细节在.env文件中(默认情况下.env文件不存在,所以我复制了.env.example并将其重命名为.env)。之后如果尝试运行

 php artisan migrate

我遇到了与@users4393829提到的异常相同的问题。我尝试使用以下命令来查找并设置数据库。

 php artisan tinker
 >>> Config::get('database.connections.mysql.database');
 >>>null
 >>>Config::set('database.connections.mysql.database','homesteaed');
 >>>Config::get('database.connections.mysql.database');
 >>>homesteaed

在完成所有这些操作之后,我发现没有database.php文件,所以我把它放在“config”文件夹中,并运行了迁移,它可以工作。请确保您的项目中任何配置文件都被Git忽略。


3
另一个可行的解决方案是缓存配置: php artisan config:cache这里一样。

1

只需删除 .env 文件并放置新文件以替换即可


0

我曾经遇到过同样的问题,结果发现框架附带的.env文件将DB_HOST默认设置为localhost并设置了DB_PORT

将主机更改为机器的FQDN后,它就可以正常工作了。我猜如果你连接到localhost,它会期望一个套接字而不是一个端口。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接