2017-03-27 55 views
0

我有一个与我的PSQL数据库连接的问题。我用C#编写了一个程序,当我发布它并将它放在另一台PC上时(它设置为从PC上的数据库获取数据,我编写了应用程序),它完美地工作。现在我想把这个数据库转移到另一台可以全天候运行的PC上,而且我很努力地做到这一点,但是我做到了(手动完成)。现在当db设置在24/7电脑上时,我无法连接到它。 例如。当我从笔记本电脑,我用于编程开始我的计划,我得到这个:无法远程连接到PSQL数据库?

enter image description here

我的连接字符串看起来是这样的:

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)时,每次启动时都需要输入服务器,数据库,端口,用户名和密码。

如果有人有任何想法如何解决此问题,请帮助,因为这是我的项目的最后一步,我不能得到它的工作...

+0

假设机器在同一网络上并且可以互相看到 - 端口通常是5432,所以试试看。如果没有运气确保运行服务器的计算机上的防火墙中有规则允许端口上的传入连接。 –

+0

@AlexK。我在编程时切换端口到5433因为出错了,但我会尝试这两种解决方案并回复您 –

+0

一个可能的问题是您需要配置postgresql来接受非本地连接。您可以通过将您的地址添加到pg_hba.conf来完成此操作。 https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html – mlinth

回答

1

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

相关问题