目前在学习Laravel5框架,作为菜鸟肯定会遇到很多莫名的问题,今天分享一个管Laravel[数据库]配置上的坑。
Laravel5作为一套简洁、优雅的PHP Web开发框架,唯一不足的一点就是中文手册或者说是资料比较少,虽然现在很多大神也开始普及这些东西,但是大神一遍也会忽略一下小坑。今天配置了一下数据库,就是目录Config\database.php,手册上说的数据库的配置文件,打开找到配置的的地方是这样的:

     'default' => env('DB_CONNECTION', 'mysql'),
        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => 'koko_',
            'strict' => true,
            'engine' => null,

看起来没什么问题,动手改:
没问题,然后满怀信心去测试

尴尬。。。报错的大概的意思就是让我确认数据库的密码是不是有错。然后我去对比,发现没有错,的确是没有密码的,然后我百度是不是这个框架数据库必须有密码,发现可以密码为空。然后就迷茫了,我继续搜索这个错误本身搜出的结果没有什么有用的 基本就是密码不对,在这个过程中我发现中“homestead@localhost”这个意识是homestead这个用户的密码,我的用户是root为啥变了,唯一的解释就会配置没有生效,然后我查找关于配置的问题 然后查了一下手册:

貌似和我写的不一样呀,完全没有env('DBHOST','localhost'),这个东西。。好,按照手册上写,然后发现的确是没有问题,成功连上数据库了。那么疑问来了 我是根据1图来修改数据库配置 为什么不生效,env()这个是什么东西。后来我去查找了一下发现另一种配置方法,在根文件夹中有个一个.env的文件:

其实一看就是一些配置文件,有邮箱的 Redis的 db就是数据库的,注意DB_USERNAME 是报错里的homested,很明显当时读取的配置就是这个.env的配置 那么env();这个就是读取这个文件的配置的,我把database.php的参数恢复然后修改.env的配置 然后测试果然也成功了。
这个小坑估计也就是我这个粗心的人才会遇见,不过借此机会也发现了.env这个

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:29t9oM2fY5Zt/cLRG3V9BOlnavjAA47PLw87FvBhtR0=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=https://test6.hctc888.top

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=***********
DB_USERNAME=root
DB_PASSWORD=***********
DB_PASSWORD2=***********

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379


MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=35712***@qq.com
MAIL_PASSWORD=***********
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=35712***@qq.com

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

APP_LOG=daily

MULPLE_SHOP=1