Php 具有未知数据库的宅地的Laravel 5

Php 具有未知数据库的宅地的Laravel 5,php,mysql,laravel,laravel-5,homestead,Php,Mysql,Laravel,Laravel 5,Homestead,您好,我使用的是Laravel 5和homestead。我第一次体验宅地,所以面临问题。我已经创建了一个数据库“myDb”,并将数据导入其中。我已经安装了vagrant和homestad,克隆了我的代码并相应地配置了homestad.yaml文件。我已设置了我的.env。当我试图运行我的项目时,它给了我未知数据库myDb错误。我可以在myphpmyadmin中看到我的数据库,但我不知道为什么它会给我这个错误。我的.env文件看起来像 DB_HOST=localhost DB_DATABASE

您好,我使用的是
Laravel 5
homestead
。我第一次体验宅地,所以面临问题。我已经创建了一个数据库“myDb”,并将数据导入其中。我已经安装了
vagrant
homestad
,克隆了我的代码并相应地配置了
homestad.yaml
文件。我已设置了我的
.env
。当我试图运行我的项目时,它给了我
未知数据库myDb错误
。我可以在my
phpmyadmin
中看到我的数据库,但我不知道为什么它会给我这个错误。我的
.env
文件看起来像

 DB_HOST=localhost
 DB_DATABASE=myDb
 DB_USERNAME=homestead
 DB_PASSWORD=secret
我的
config/database.php中也有相同的设置

'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'myDb'),
        'username'  => env('DB_USERNAME', 'homestead'),
        'password'  => env('DB_PASSWORD', 'secret'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ]
这真让我生气。我做错了什么?我被跟踪了

  in Connector.php line 55
at PDO->__construct('mysql:host=localhost;dbname=myDb', 'homestead',   'secret', array('0', '2', '0', false, '0')) in Connector.php line 55
at Connector->createConnection('mysql:host=localhost;dbname=myDb', array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'myDb', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 22
 at MySqlConnector->connect(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'myDb', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in ConnectionFactory.php line 60
at ConnectionFactory->createSingleConnection(array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'myDb', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in ConnectionFactory.php line 49

您可能会犯的一个常见错误是,您可能正在本地主机上访问MySQL服务器,而您应该记住Homestead是一个完整的虚拟开发环境。它有自己的Web服务器、MySQL服务器等

要查看Homestead MySQL服务器上是否也有“myDB”,请尝试通过以下命令访问Homestead

homestead ssh
完成后,尝试通过mysql命令打开mysql控制台

mysql -u username -p
在那之后,使用

show databases
如果您在那里看不到“myDb”数据库,那么您应该尝试使用Navicat或MySQL Workbench连接Homestead MySQL服务器,并将您的数据库从本地MySQL服务器移动到Homestead MySQL服务器


这可能会解决您的问题。

如果要迁移数据库,请检查您是否正在迁移
Homestead.yaml
文件中的相同数据库名称以及
.env
文件中的数据库名称

内部
homestad.yaml
文件:

DB_DATABASE=laravel
数据库:
-拉维尔
.env
文件中:

DB_DATABASE=laravel

您是否更新了
config/database.php
文件?是的。我已经更新了,这可能是缓存问题,你是否可以重新启动WebServer你可以
var_dump()
你在
connector.php
文件
createConnection
函数上得到什么,如果它没有得到正确的东西吗?@PrafullaKumarSahu DoneHey man。。。这就是我一直在寻找的。。多谢各位+1.很好的解释没问题!如果你还有任何问题,一定要告诉我。