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

Docker Compose中SpringBoot连接PostgreSQL数据库报错求助

解决PostgreSQL容器报错“database 'minot' does not exist”的问题

问题核心原因

你遇到的报错存在两个关键问题:

  1. Spring应用连接地址错误:PostgreSQL服务名称是db-minot-postgres,但Spring配置的SPRING_DATASOURCE_URL中写的是db-minotaur-postgres,会导致连接目标错误;
  2. PostgreSQL初始化逻辑未触发:POSTGRES_DB环境变量仅在容器第一次启动且数据目录为空时生效,若本地./data目录已存在旧数据库数据,PostgreSQL会跳过初始化,不会创建指定的minot数据库。

解决方案

1. 修正Spring应用的数据库连接URL

修改docker-compose.yml中app服务的SPRING_DATASOURCE_URL配置,将主机名改为正确的服务名称:

SPRING_DATASOURCE_URL: jdbc:postgresql://db-minot-postgres:5432/minot

2. 清理旧数据卷并重启容器

已存在的./data目录会阻止PostgreSQL初始化新数据库,执行以下命令清理并重启:

# 删除本地数据目录
rm -rf ./data
# 停止并移除现有容器
docker-compose down
# 重新启动容器
docker-compose up -d

备选方案(保留现有数据)

若不想删除现有数据,可手动进入PostgreSQL容器创建minot数据库:

# 进入PostgreSQL容器
docker exec -it minot-db-minot-postgres-1 psql -U postgres

在PostgreSQL命令行中执行创建数据库的SQL:

CREATE DATABASE minot;

执行完成后退出容器,重启Spring应用容器即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:10:15