我遇到了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?
答案 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