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

Docker+Laravel项目迁移报错:SQLSTATE[HY000][1049]未知数据库

解决Docker部署Laravel时数据库不存在的问题

1. 清理MySQL持久化数据卷

旧数据卷可能残留异常配置,导致自动创建数据库失败。执行命令重置:

# 停止服务并删除数据卷
docker-compose down -v
# 重新启动服务
docker-compose up -d

2. 验证.env变量加载正确性

  • 确保.env文件中DB_DATABASE=ead无多余空格,且文件位于项目根目录(与docker-compose.yml同级)
  • 检查docker-compose.yml中MySQL服务的环境变量是否正确引用.env变量,确认${DB_DATABASE}等变量名与.env完全一致
  • 使用Sail时,必须通过Sail命令执行迁移,避免本地PHP连接错误:
    sail artisan migrate
    

3. 手动创建目标数据库

若自动创建逻辑失效,手动进入MySQL容器创建数据库:

# 进入MySQL容器
docker exec -it laravel-api-ead-mysql-1 mysql -u root -p
# 输入密码后执行SQL
CREATE DATABASE ead;
GRANT ALL PRIVILEGES ON ead.* TO 'root'@'%';
FLUSH PRIVILEGES;

4. 确认容器网络连通性

确保Laravel容器与MySQL容器在同一网络:

# 进入Laravel容器(替换为你的Laravel容器名)
docker exec -it [your-laravel-container-name] ping mysql

若ping不通,检查docker-compose.yml中networks配置,确保两个服务都加入了laravel-eti网络。

5. 检查phpMyAdmin配置

若phpMyAdmin无法显示数据库,确认其服务配置中PMA_HOST指向mysql服务名,且与MySQL容器处于同一网络。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:30:10