【问题标题】:Can't connect remotely to PSQL database?无法远程连接到 PSQL 数据库?
【发布时间】:2017-08-20 01:53:40
【问题描述】:

我在连接到我的 PSQL 数据库时遇到问题。我用 C# 编写了一个程序,当我发布它并将它放在另一台 PC 上(设置它从我编写应用程序的 PC 上的 db 获取数据)时,它运行良好。现在我想将该数据库转移到另一台 24/7 运行的 PC 上,我在这方面遇到了困难,但我做到了(最终手动完成)。现在,当 db 在那台 24/7 的 PC 上设置时,我无法连接到它。 例如。当我从用于编程的笔记本电脑启动程序时,我得到了这个:

我的连接字符串如下所示:

string Connectionstring = "Server=192.168.130.240;Port=5433;User Id=postgres;" +
"Password=password;Database=postgres;";
NpgsqlConnection conn = new NpgsqlConnection(Connectionstring);
conn.Open();

附:我注意到的一个区别是,在我用来编程连接字符串的笔记本电脑上,只有 IP:127.0.0.1 相同,并且每当我打开 PSQL 时,它会自动启动并且它已经登录,但是在这台 24/7 的 PC 上当我启动 psql.exe 时,它​​会启动然后关闭,但是当我启动 SQL Shell(PSQL) 时,我每次启动时都需要输入服务器、数据库、端口、用户名和密码。

如果有人知道如何解决这个问题,请帮忙,因为这是我项目的最后一步,我无法让它工作......

【问题讨论】:

  • 假设机器在同一个网络上并且可以互相看到 - 端口通常是 5432,所以尝试一下。如果运气不好,请确保运行服务器的机器上的防火墙中有一条规则,以允许端口上的传入连接。
  • @AlexK。我在编程到 5433 时切换了端口,因为出了点问题,但我会尝试两种解决方案并回复你
  • 一个可能的问题是您需要配置 postgresql 以接受非本地连接。您可以通过将您的地址添加到 pg_hba.conf 来做到这一点。 postgresql.org/docs/current/static/auth-pg-hba-conf.html
  • 为了远程访问一个PostgreSQL数据库,你必须设置两个主要的PostgreSQL配置文件:postgresql.conf pg_hba.conf 检查这个链接stackoverflow.com/questions/18580066/…
  • 还要检查是否为端口 5432 启用了传入请求的防火墙例外,或者您为数据库配置了哪个端口。

标签: c# database postgresql connection


【解决方案1】:

为 PgSQL 数据库端口的传入 TCP 连接添加防火墙例外。 默认情况下,它是 5432 端口。 对于数据库保存在远程计算机上的情况,这是必需的。

【讨论】:

    猜你喜欢
    • 2019-10-16
    • 2016-07-31
    • 2013-12-14
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多