从Visual Studio连接Docker中PostgreSQL报错CatalogDb不存在的解决
问题:连接Docker容器中PostgreSQL时提示"CatalogDb不存在"(实际已创建)
尝试从Visual Studio连接Docker容器内的PostgreSQL数据库,已确认
CatalogDb存在,但仍触发错误:Npgsql.PostgresException (0x80004005): 3D000: database "CatalogDb" does not exist
已验证的配置与状态
- 容器运行正常:
docker ps输出显示容器处于运行状态,端口映射为0.0.0.0:5432->5432/tcp - 连接字符串配置:
"Server=localhost;Port=5432;Database=CatalogDb;User Id=postgres;Password=postgres;Include Error Detail=true" - 容器内数据库存在:进入容器执行PostgreSQL命令
\l,可确认CatalogDb已创建 - Docker配置无误:
docker-compose.yml及docker-compose.override.yml配置符合预期
解决步骤
- 更新
appsettings.json中的数据库连接端口为5433 - 修改
docker-compose.yml的端口映射规则为5433:5432
原因分析
本地默认PostgreSQL端口5432已被其他进程占用,导致Visual Studio实际连接的并非Docker容器内的PostgreSQL实例,而是占用该端口的其他数据库服务,因此出现目标数据库不存在的错误。
内容的提问来源于stack exchange,提问作者Mocak
相关产品推荐
相关产品推荐

