You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel执行php artisan migrate报错SQLSTATE[HY000][2002]求助

解决Laravel php artisan migrate 数据库连接错误

核心问题分析

你遇到的SQLSTATE[HY000] [2002] No such file or directory错误,本质是Laravel无法找到MySQL服务的连接路径,常见触发原因包括:

  • 混淆了phpMyAdmin的网页访问端口与MySQL服务端口
  • Docker环境下DB_HOST配置指向错误(当前终端显示为Docker容器环境)

分步解决步骤

1. 修正端口配置,区分服务端口与管理界面端口

你提到的http://localhost:8081是phpMyAdmin的网页访问端口,MySQL服务默认端口为3306,除非你的MySQL服务特意修改过端口。先将.env中的DB_PORT改回3306。

2. 调整DB_HOST适配Docker环境

因为你在Docker容器内运行Laravel,localhost指向的是当前Laravel容器本身,而非宿主机或其他容器的MySQL服务,需根据MySQL的部署位置修改:

  • 若MySQL在宿主机(Docker外)运行:
    Linux/macOS系统将DB_HOST改为host.docker.internal;Windows系统可尝试host.docker.internal或127.0.0.1。
  • 若MySQL在另一个Docker容器运行:
    将DB_HOST改为MySQL容器的名称或容器IP(可通过docker inspect 容器名命令查看IP)。

3. 确认数据库与权限配置

  • 通过http://localhost:8081登录phpMyAdmin,确认church数据库已创建。
  • 检查root用户(或你配置的DB_USERNAME)是否拥有church数据库的访问权限,若MySQL设置了密码,需填写正确的DB_PASSWORD。

4. 清除Laravel配置缓存

修改.env后需清除配置缓存,避免Laravel使用旧配置:

php artisan config:clear
php artisan cache:clear

5. 测试连接并执行迁移

先测试数据库连接是否正常:

php artisan db:connect

连接成功后再执行迁移命令:

php artisan migrate

内容的提问来源于stack exchange,提问作者PaulCatalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:36:06