连不上库大概率是laragon环境下参数错误或缓存未刷新:确认mysql运行状态及端口(3306)、db_host必须为127.0.0.1、改.env后必执行php artisan config:clear,并注意mysql 8+认证插件兼容性与root用户授权范围。

连不上库,大概率不是 Laravel 本身的问题,而是 Laragon 环境下数据库连接参数没对上,或者配置改了但没刷新缓存。Laragon 默认用 MySQL 5.7+、PHP 8.x,端口常为 3306,但实际可能被占或改过——得亲手核对。
确认 Laragon 的 MySQL 实际运行状态和端口
Laragon 界面左下角会显示 MySQL 状态。点开「MySQL」→「Open terminal」,执行:
- netstat -ano | findstr :3306(Windows)或 lsof -i :3306(macOS/Linux),看是否有进程监听
- 进终端直接输 mysql -u root -p,密码默认是空或 root,能登录说明服务正常
- 如果报错“Can’t connect to local MySQL server”,说明 MySQL 没启动,右键 Laragon 图标 → Restart MySQL
.env 里这四行必须精准填对
Laragon 是本地集成环境,别写 localhost,它容易触发 Unix socket 连接失败:
- DB_HOST=127.0.0.1(强制走 TCP,最稳)
- DB_PORT=3306(Laragon 默认是 3306;若你手动改过,在「MySQL」→「Settings」里查端口)
- DB_DATABASE=your_db_name(库名必须已存在,Laravel 不自动建;大小写敏感,Linux 下尤其注意)
-
DB_USERNAME=root 和 DB_PASSWORD=(Laragon 默认 root 用户无密码;若设过密码,且含
@或/,请用双引号包裹:DB_PASSWORD="p@ss/w0rd"
改完 .env 后,缓存必须清
Laravel 会把 .env 加载进内存并缓存。不清理,改一百遍也没用:
- 在项目根目录运行:php artisan config:clear
- 如果之前跑过 php artisan config:cache(比如部署时),还得补一句:php artisan config:cache
- 验证是否生效:运行 php artisan tinker → 输入 config('database.connections.mysql.host'),返回值应是 127.0.0.1
额外两个高频陷阱(Laragon 用户常踩)
即使上面全对,也可能卡在这两处:
-
MySQL 8+ 认证插件不兼容:Laragon 新装若带 MySQL 8.0+,root 用户默认用
caching_sha2_password,而 PHP 的 mysqlnd 扩展老版本不支持。解决方法:用 Laragon 自带的 phpMyAdmin 或终端登录 MySQL,执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
(留空密码就写两个单引号) -
数据库用户授权范围不对:Laragon 中 root 默认只允许
'root'@'localhost',但 Laravel 用127.0.0.1连,属于不同 host。补一条授权:
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1'; FLUSH PRIVILEGES;











