0

我在使用 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?
4

2 回答 2

0

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

于 2014-12-10T23:39:03.130 回答
0

A. 首先确保PostgreSQL服务器已经启动到远程服务器。

# /etc/init.d/postgresql start

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

第 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 :指定要连接的数据库(sales)的名称。

于 2013-09-24T20:42:49.853 回答