0

我将 .NET Npgsql 客户端用于 crate 数据库cratedb .Crate 数据库作为 docker 运行,dcoker 命令是

sudo docker run -p "4200:4200"   crate

但是当我通过 Npgsql 客户端连接数据库时没有错误显示但连接没有建立

NpgsqlDatabaseInfo.RegisterFactory(new CrateDbDatabaseInfoFactory());
var connString = "Host=localhost;Port=4200;Username=crate;SSL Mode=Prefer;Database=doc";
await using var conn = new NpgsqlConnection(connString);
await conn.OpenAsync();

我在本地机器上运行 docker 数据库。我可以通过 http://localhost:4200/ 访问管理 UI。另外,安装的 crate 数据库(使用可执行文件)连接到 Npgsql 客户端。Python客户端连接docker没有问题。我不根据实际问题。

import requests
from crate import client
connection = client.connect("localhost:4200")
4

1 回答 1

2

默认情况下,CrateDB 在端口上监听 PostgreSQL 协议兼容的客户端5432,该端口4200正在监听 HTTP 客户端。有关更多文档,请参阅https://crate.io/docs/crate/reference/en/4.3/config/node.html#ports

因此,将您的 docker 命令更改为

sudo docker run -p 5432:5432 crate

应该解决这个问题。

于 2020-11-25T15:08:21.767 回答