gpt4 book ai didi

.net - 在 .NET 中使用 SSH 隧道连接到 postgresql

转载 作者:行者123 更新时间:2023-11-29 13:51:06 26 4
gpt4 key购买 nike

我尝试从我的 Windows 客户端连接到远程 PostgreSQL 服务器。当我使用“Dbeaver”连接到数据库时,我必须填充网络连接 (SSH),它连接正常。

我正在 VB.NET 中开发一个必须连接到数据库的应用程序,但我无法实现它。

我正在使用 Devart dll 连接到数据库,使用 Renci.SshNet dll 连接到服务器。

我已经设法连接到服务器,显然是通过 SSH,因为日志上说是这样,但是当我尝试连接到 DDBB 时,它会抛出一个错误:

no hay una línea en pg_hba.conf para "xx.xx.xx.xxx", usuario "xxx", base de datos "xxxx", SSL inactivo

接下来是连接代码:

Dim connectionInfo As New PasswordConnectionInfo(IP, USER, PASS)
connectionInfo.Timeout = TimeSpan.FromSeconds(30)
client = New SshClient(connectionInfo)
client.Connect()
Dim portFwld As New ForwardedPortLocal("127.0.0.1", Convert.ToUInt32(PORT_SSH), IP, Convert.ToUInt32(5432))
client.AddForwardedPort(portFwld)
portFwld.Start()
Log(client.IsConnected)
Log(portFwld.IsStarted)

client.IsConnected = true 和 portFwld.IsStarted = true

错误在这里(打开时):

Dim myConnection As PgSqlConnection = New PgSqlConnection()
Try
myConnection.ConnectionString = "Server=" & IP & ";Port=5432;Database=" & BBDD_Postgre & ";User Id=" & USER & ";Password=" & PASS & ";"
myConnection.Open()

我尝试了很多组合,但没有一个是有效的,我不知道还能看什么,我迷路了。我想如果“Dbeaver”可以从我的 PC 连接,为什么我的应用程序不能?如果没有“Dbeaver”运行,为什么我的服务器必须在 pg_hba.conf 中添加我的 IP?

最佳答案

(代表 OP 发布)

我的错误是将远程 IP 放入连接字符串中,而它必须是“127.0.0.1”:

myConnection.ConnectionString = "Server=127.0.0.1;Port=5432;Database=" & BBDD_Postgre & ";User Id=" & USER & ";Password=" & PASS & ";"

关于.net - 在 .NET 中使用 SSH 隧道连接到 postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41149508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com