加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL psql: could not connect to server: Connection ref

发布时间:2020-12-13 17:13:38 所属栏目:百科 来源:网络整理
导读:转自 http://www.cyberciti.biz/faq/postgresql-remote-access-or-connection/ Q. When I try to connect remote PostgreSQL,I am reciving an error which read as follows: psql: could not connect to server: Connection refused Is the server running

转自 http://www.cyberciti.biz/faq/postgresql-remote-access-or-connection/


Q. When I try to connect remote PostgreSQL,I am reciving an error which read as follows:

psql: could not connect to server: Connection refused
Is the server running on host host.domain.com and accepting
TCP/IP connections on port 5432?

How do I fix this problem? I am using CentOS 4.x version.

A. First make sure PostgreSQL server has been started to remote server.

#/etc/init.d/postgresqlstart

If it is running and you get above error,you need to add enable TCP/IP support. By default,the PostgreSQL server only allows connections to the database from the local machine or localhost. This is a security feature.

Step # 1: Allow remote IP address to access PostgreSQL

You need to open file called /var/lib/pgsql/data/pg_hba.conf. Login as postgres user using su command:

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

Now append following line. Let us say you would like to give access to 192.168.1.0/24 network:

hostallall192.168.1.0255.255.255.0trust

Please replace 192.168.1.0 and 255.255.255.0 to reflect the actual network IP address range of the clients system in your own network.

Save close the file.

Step # 2: Allow communication over TCP/IP

You need to open PostgreSQL configuration file /var/lib/pgsql/data/postgresql.conf

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

Now bind and open TCP/IP port by setting tcpip_socket to true:

tcpip_socket=true

Save and close the file.

Step # 3: Restart PostgreSQL server

Restart the PostgreSQL server with the following command

#/etc/init.d/postgresqlrestart

This will open default port 5432.

Step # 4: Test your setup

Use psql command from client system as follows:
psql -h PostgreSQL-IP-ADDRESS -U USERNAME -d DATABASENAME

Connect to remote server by IP address 192.168.1.5 and login using vivek user to connect to sales database,use:

$psql-h192.168.1.5-Uvivek-dsales

Where,

  • -h 192.168.1.5: Specifies the host name of the machine or IP address (192.168.1.5) on which the server is running.

  • -U vivek: Connect to the database as the vivek username instead of the default. You must haveaccount and permissionto connect as vivek user.

  • -d sales: Specifies the name of the database (sales) to connect to.

Kamchybek JusupovMarch 23,2007,10:48 am

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

  • You can also use 192.168.1.31/24 instead of 192.168.1.31 255.255.255.0 (CIDR-address),kinda config file will look “cleaner”,and I would use “md5” instead of “trust” for further peace-of-mind :)

    REPLYLINK

  • RajeevJanuary 9,2008,8:14 am

    Thanks for the fantastic FAQ. Just what I needed as a newbie with pgsql.

    Just wanted to mention here that was trying to connect a remote pgsql db on a Suse Linux 9. It did not have the tcpip_socket parameter in postgresql.conf

    To overcome this,I had to uncomment the following settings:

#―――――――――――――――――――――――――
#CONNECTIONSANDAUTHENTICATION
#―――――――――――――――――――――――――
#?ConnectionSettings?
listen_addresses=‘*’
port=5432
Bouncedthedbandvoila,Iwasabletoconnectandtorunqueries.
Hopethishelps.
Thanks
Rajeev
  • RajeevForgot to mention the version of my postgresql db. It’s 8.1.4

    REPLYLINK

  • devenJanuary 31,5:51 am

    Hi,
    this guide was a good help for me.
    only thing as rajeev said their is no parameter with the name tcpip_socket in Ubuntu also.

    so used following things in the postgresql.conf config file

listen_addresses=‘*’
port=5432

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读