Laravel登录提示未知数据库'laravel'但数据库存在,求助解决
Laravel登录提示"Unknown database 'laravel'"的排查方案
- 清除配置缓存
Laravel会缓存环境配置,即便.env正确也可能加载旧配置,执行以下命令清空缓存:
php artisan config:clear php artisan cache:clear php artisan route:clear
- 检查模型数据库连接
确认User模型使用的是正确的数据库连接,打开app/Models/User.php查看:
protected $connection = 'mysql'; // 需与.env中DB_CONNECTION的值一致
- 验证环境变量加载结果
在登录方法中直接打印当前数据库配置,确认是否加载了正确的.env值:
// 在AuthenticatesUsers的login方法内添加 dd(config('database.connections.mysql.database'));
如果输出不是laravel,检查.env文件是否在项目根目录、是否被.gitignore忽略,或存在.env.local等其他环境配置文件覆盖了默认设置。
- 测试登录逻辑内的数据库连接
手动在登录方法中创建连接并验证:
try { $pdo = DB::connection()->getPdo(); dd($pdo->query("SELECT DATABASE()")->fetchColumn()); } catch (\Exception $e) { dd($e->getMessage()); }
若此处能正确返回laravel但登录仍报错,排查是否有中间件、服务提供者等代码在登录流程中切换了数据库连接。
- 确认用户表所在数据库
用数据库客户端查看laravel数据库中是否存在users表,或执行命令检查迁移状态:
php artisan migrate:status
确保所有迁移都在目标数据库执行完成。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

