c# - NetCore NpgsqlConnection 无法连接到 MacOs 上 docker 容器内的 psql
问题描述
我正在编写一个 .net 应用程序来连接到在 docker 容器内运行的 postgres 数据库。
系统:MacOs Big Sur with M1 芯片和.NetCore 3.1
连接数据库的代码:
var cs = "Host=localhost;Username=postgres;Database=postgres;Port=5432"
using var con = new NpgsqlConnection(cs);
con.Open();
这会产生以下错误:
ERR 11] 28000:角色“postgres”不存在
该错误使我认为它正在尝试连接到我的本地计算机而不是在本地计算机上运行的 docker
为了调查我尝试直接从终端通过 psql 连接的问题:
psql -h localhost -p 5432 -U postgres
这会产生相同的错误;
根据this page,容器内的连接应该提到ip(-h localhost),所以psql将使用docker暴露的TCP端口而不是连接到本地psql,但似乎这不会发生。
知道如何使用 c# 在 docker 容器内创建 psql 连接吗?
解决方案
推荐阅读
- java - 将 Spring Security 与 Keycloak 集成时遇到 NullPointerException
- luxon - 如何在 luxonjs 中获得实际的经络?
- outlook - 使用自己的提供商从 Outlook 进行电子邮件签名
- javascript - “连接”类型上不存在属性“exportJson”...使用 JS Store 时
- android - 使用 Deferred 的单元测试 Retrofit 调用
- r - 如何获得“|”的不同值 分隔列?
- angular - Angular 11最大调用堆栈大小超出错误
- node.js - Node Js发送到客户端后无法设置标头
- jolt - JOLT:将字段合并到嵌套对象中
- angular - 没有重载匹配此调用。重载 1 of 3, '(obj: Observable