Laravel 5.6.18数据库配置报错:Undefined index: driver
解决Laravel 5.6.18中“Undefined index: driver”数据库配置错误
嘿,我之前在Laravel开发里也踩过这个“Undefined index: driver”的坑,结合你给出的配置片段,大概率是这几个原因,给你整理了排查和解决步骤:
先检查.env文件的数据库连接标识
首先确认你的.env文件里DB_CONNECTION有没有正确设置,比如设置成mysql或者sqlite。如果这个值拼错了(比如写成mysqls这种不存在的连接名),Laravel找不到对应的连接配置数组,就会抛出这个错误。正常的配置应该是:DB_CONNECTION=mysql确保database.php的connections配置完整且语法正确
你给出的mysql配置片段最后是'usernam...',看起来没写完。要保证整个mysql连接数组是完整的,必填项(比如driver、username、password)都不能少,而且数组的括号要正确闭合,不能有语法错误。完整的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' => '', 'strict' => true, 'engine' => null, ],另外要检查connections数组里有没有多余的逗号或者缺失的括号,语法错误会导致Laravel无法正确解析配置。
清除配置缓存(很重要!)
如果你之前运行过php artisan config:cache,修改配置后一定要清除缓存,不然Laravel会一直加载旧的缓存配置。运行以下命令即可:php artisan config:clear开发环境下建议尽量不要缓存配置,避免这类缓存导致的问题。
确认默认连接配置正确
检查database.php文件顶部的default配置项:'default' => env('DB_CONNECTION', 'mysql'),要保证这里指定的连接名(比如
mysql)在connections数组里存在,并且配置完整。
内容的提问来源于stack exchange,提问作者Juan Rangel
相关产品推荐
相关产品推荐

