Laravel本地项目无法连接数据库,排查配置后仍未解决
Laravel 本地数据库连接失败排查方案
针对你切换Laragon后仍出现「unable to connect」数据库连接失败的问题,可按以下步骤逐一排查:
确认数据库服务运行状态
打开Laragon控制面板,检查MySQL/MariaDB模块的状态灯是否为绿色;也可通过命令行执行netstat -ano | findstr :3306(Windows),确认3306端口是否被正常监听。验证数据库账号有效性
使用Laragon自带的phpMyAdmin登录数据库,确保你在.env中配置的账号能正常登录,且拥有目标数据库的读写权限。若使用root账号,需确认其允许本地(127.0.0.1/localhost)连接。清除Laravel配置缓存
Laravel可能缓存了旧的数据库配置,执行以下命令强制刷新:php artisan config:clear php artisan cache:clear php artisan config:cache绕过Laravel直接测试数据库连接
在项目根目录创建test-db.php文件,用原生PDO测试连接,排除框架层面的问题:<?php require __DIR__.'/vendor/autoload.php'; $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->load(); try { $pdo = new PDO( "mysql:host={$_ENV['DB_HOST']};dbname={$_ENV['DB_DATABASE']};charset=utf8mb4", $_ENV['DB_USERNAME'], $_ENV['DB_PASSWORD'] ); echo "数据库连接成功!"; } catch(PDOException $e) { die("连接失败原因: " . $e->getMessage()); }访问该文件,获取具体的错误信息,这比Laragon的弹窗提示更详细。
检查主机与端口配置细节
确认.env中的DB_HOST设置为127.0.0.1(部分环境下localhost会优先使用socket连接,可能与Laragon配置冲突);DB_PORT保持为3306(Laragon默认端口,除非你手动修改过)。查看Laravel错误日志
打开storage/logs/laravel.log,定位最新的数据库连接报错日志,里面会包含具体的失败原因(如账号密码错误、数据库不存在、权限不足等),这是排查问题的核心依据。
内容的提问来源于stack exchange,提问作者Tylarri
相关产品推荐
相关产品推荐

