【发布时间】: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