我已经设置了Laravel 5.0(这是一项要求)并将其设置为使用远程MySQL数据库。所有迁移和数据交互均通过,但在尝试使用Auth登录POST时,PDOException
第47行中的Connector.php
失败:
SQLSTATE [HY000] [2002]没有这样的文件或目录,提到“PDO-> __ construct('mysql:host = localhost; dbname = homestead','homestead','secret',array('0', '2','0',false,false))“
宅基地DSN在哪里?为什么跳过database.php
配置和.env
配置?如果我尝试向.env
添加一些套接字信息(好吧它不应该在这里算,对吧?)套接字路径传递给提到的PDOException
调用堆栈,但是主机名,登录等等!不是!
混淆。我做错了什么?
UPD 这是.env:
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
DB_HOST=mysql.someremteohosting.net
DB_DATABASE=mydb
DB_USERNAME=myuser
DB_PASSWORD=mysuperpassword
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
这是database.php:
<?php
return [
'fetch' => PDO::FETCH_CLASS,
'default' => 'mysql',
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => storage_path().'/database.sqlite',
'prefix' => '',
],
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
],
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'prefix' => '',
],
],
'migrations' => 'migrations',
],
];
同样,所有迁移都有效。我可以毫不费力地在修补程序中创建,保存和获取对象。宅基地的唯一参考是.env.example文件。
答案 0 :(得分:2)
不确定这里到底出了什么问题。我在应用代码中找到'homestead'
的唯一位置是.env.example
。我将其删除了composer dump-autoload
。之后它起作用了。 laravel毫无理由地潜入.example配置仍感到惊讶。