Postgres开始问题

时间:2013-07-11 01:02:29

标签: postgres.app

我遇到了PostgreSQL的问题

我随时跑

psql -h localhost

我得到了

psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?

2 个答案:

答案 0 :(得分:0)

一个。首先确保PostgreSQL服务器已启动到远程服务器。

# /etc/init.d/postgresql start

如果它正在运行且您遇到上述错误,则需要添加启用TCP / IP支持。默认情况下,PostgreSQL服务器仅允许从本地计算机或localhost连接到数据库。这是一项安全功能。

步骤1:允许远程IP地址访问PostgreSQL

您需要打开名为/var/lib/pgsql/data/pg_hba.conf的文件。使用su命令以postgres用户身份登录:

$ su - postgres
$ vi /var/lib/pgsql/data/pg_hba.conf

现在追加以下行。我们假设您想要访问192.168.1.0/24网络:

host all all 192.168.1.0 255.255.255.0 trust

请替换192.168.1.0和255.255.255.0以反映您自己网络中客户端系统的实际网络IP地址范围。

保存关闭文件。

步骤2:允许通过TCP / IP进行通信

您需要打开PostgreSQL配置文件/var/lib/pgsql/data/postgresql.conf

$ vi /var/lib/pgsql/data/postgresql.conf

现在通过将tcpip_socket设置为true来绑定并打开TCP / IP端口:

tcpip_socket = true

保存并关闭文件。

步骤3:重启PostgreSQL服务器

使用以下命令重新启动PostgreSQL服务器

# /etc/init.d/postgresql restart

这将打开默认端口5432。

步骤#4:测试你的设置

使用来自客户端系统的psql命令,如下所示:

psql -h PostgreSQL-IP-ADDRESS -U USERNAME -d DATABASENAME

通过IP地址192.168.1.5连接到远程服务器并使用vivek用户登录以连接到销售数据库,使用:

$ psql -h 192.168.1.5 -U vivek -d sales

其中,

  

-h 192.168.1.5:指定运行服务器的计算机或IP地址(192.168.1.5)的主机名。

     

-U vivek:以vivek用户名而不是默认用户名连接到数据库。您必须拥有以vivek用户身份连接的帐户和权限。

     

-d sales:指定要连接的数据库(销售)的名称。

答案 1 :(得分:0)

对于阅读此内容并使用Postgres.app的任何人,您可能需要在database.yml中使用host:localhost。 http://postgresapp.com/documentation#toc_3