Laravel 5.0 Auth使用Homestead而不是.env DB

时间:2018-03-16 18:24:33

标签: php mysql laravel authentication pdo

我已经设置了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文件。

1 个答案:

答案 0 :(得分:2)

不确定这里到底出了什么问题。我在应用代码中找到'homestead'的唯一位置是.env.example。我将其删除了composer dump-autoload。之后它起作用了。 laravel毫无理由地潜入.example配置仍感到惊讶。