Mysql laravel[1049]未知数据库

Mysql laravel[1049]未知数据库,mysql,laravel,Mysql,Laravel,我是laravel的新手,目前在尝试通过控制器查看数据库时遇到问题。当我试图使用控制器查看我的数据时,我得到以下错误 “SQLSTATE[HY000][1049]未知数据库'laravel'” 如果我使用artisan tinker,我可以执行::all()并查看我的数据,我还成功地将我的数据迁移了。只是出于某种原因,它似乎不喜欢我的观点 我看过其他类似的答案,这些答案建议我参加竞选 php artisan缓存:清除 然而,这对我没有任何帮助 控制器: class authorsControll

我是laravel的新手,目前在尝试通过控制器查看数据库时遇到问题。当我试图使用控制器查看我的数据时,我得到以下错误

“SQLSTATE[HY000][1049]未知数据库'laravel'”

如果我使用artisan tinker,我可以执行::all()并查看我的数据,我还成功地将我的数据迁移了。只是出于某种原因,它似乎不喜欢我的观点

我看过其他类似的答案,这些答案建议我参加竞选

php artisan缓存:清除

然而,这对我没有任何帮助

控制器:

class authorsController extends Controller
{

    public function index(){
        $authorList = \App\Author::all();
        //return $authors;
        return view('library.authors');
    }
}
Inside.env文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=library
DB_USERNAME=root
DB_PASSWORD=

请尝试以下命令列表

php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
将此代码放入路由
web.php
并在浏览器中运行后,将显示数据库是否已连接

Route::get('/testConnection', function () {
try {
      DB::connection()->getPdo();
      if(DB::connection()->getDatabaseName()){
          echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
          die;
      }else{
          die("Could not find the database. Please check your configuration.");
      }
  } catch (\Exception $e) {
      die($e->GetMessage());
  }
});

希望这能对您有所帮助。

我不确定为什么仍然如此,但我确实找到了一个适合我的解决方案。在
config.database.php
中,我将
'database'=>env('DB_database','forge')
更改为
'database'=>env('library','library')
。我觉得我不应该改变这些,但无论出于什么原因,我纠正了这个问题


这让我觉得它与
.env
文件有关,但不确定。我将不得不启动一个新项目,以验证我的系统上是否存在异常情况。

如果您使用
php artisan serve运行Laravel
,则在停止并重新启动服务器之前,它不会进行
.env
更改


服务器启动时,可能已将“laravel”设置为数据库名称。杀死它,然后再次运行该命令。

我尝试了php artisan config:clear。我尝试了php artisan缓存:清除。我创建了数据库。我扔掉了它,重新创建了几次。我甚至尝试通过更改.env中的DB_数据库值来使用现有数据库。我可以通过CLI连接到新数据库和现有数据库。我看到了php-m中的驱动程序。因此,要在Windows 10上解决这个问题,需要在.env中将DB_HOST=127.0.0.1更改为DB_HOST=localhost,并再次清除config/cache。工作。

请运行
php artisan tinker
并执行
config('database')
。检查它是否选择了正确的值-特别是
默认值和
mysql.database
one。检查
config/database.php
中的值。如果您有(并且正在使用)多个
连接
,其中一个可能未配置为将
用作
数据库
。检查
env(“…”,“laravel”);有些东西可能使用默认值而不是
DB_DATABASE
@ceejayoz我查看了
config('DATABASE')
,它表明它们都是正确的数据库。@PaulCarlson如果你确定的话,然后检查
app/Author.php
中是否没有设置
$connection
值。@Timleis我查看了
config/database.php
,它看起来不错。我甚至搜索了“拉威尔”,结果除了评论外什么也没找到。我还查看了我的.env文件,使用正确的数据库名称看起来也不错。谢谢你的建议,但是它仍然说我使用了错误的数据库。它仍然给我“SQLSTATE[HY000][1049]未知数据库'laravel”。你知道数据库信息的路线吗?例如,我知道我在
.env
中声明了它,然后在
config.database.php
中读取它。保罗·卡尔森我的建议是创建一个名为
laravel
的新数据库,并检查错误是否消失。这太奇怪了。但除非您的
.env
文件
library=library
env('library','library')中有条目
只是默认为
,因此您可以有效地将
“数据库”=>库
。很高兴你能让它工作!config/database.php中的默认值实际上指向.env中的值。像这样:'database'=>env('DB_database','forge')DB_database是一个不应该更改的键。它引用.env中提到的键。方法env()用于从.env文件中检索值。阅读这里的env():就是这样。我没有想到在我做了更改后重新启动服务器。谢谢你显而易见的回答。