2015-09-07 78 views
18

我试图连接到使用下面的命令安装在远程服务器的Postgres数据库时“psql的:无法连接到服务器的连接被拒绝”错误db_username -d db_name</p> <p>的psql -h <code>host_ip</code> -U:连接到远程数据库

这发生的错误:

PSQL:无法连接到服务器:连接被拒绝 是服务器上的主机上运行“”并接受 端口5432上的TCP/IP连接?

  1. Postgres安装的版本是9.4。
  2. 主机操作系统:Ubuntu的15.04
  3. 客户端操作系统:Centos的7

我已经试过以下,但问题仍未解决:

  1. 编辑pg_hba.conf文件,包括

host all all 0.0.0.0/0 md5

  • 被修改 '的postgresql.conf' 和改变了听参数
  • 的listen_addresses = '*'

  • 重新启动postgres服务。
  • 在主机和客户端上禁用防火墙和iptables。
  • 我通过在本地运行psql命令进行检查,它工作。
  • 我尝试了question中给出的第二种解决方案。运行nmap给了我下面的输出:
  • Starting Nmap 6.47 (http://nmap.org) at 2015-09-07 18:08 IST Nmap scan report for 10.17.250.250 Host is up (0.0000040s latency). Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http

    我失去了一些东西。希望有人能帮忙。

    +0

    防火墙仍然阻塞端口5432.检查您的配置为iptables。 –

    +0

    @Dmitry我通过运行'sudo ufw disable'来禁用iptables,但是我仍然遇到同样的错误。 –

    +0

    你可以试试'netstat -na | grep 5432'并查看postgresql是否绑定到所有接口? – kometen

    回答

    27
    cd /etc/postgresql/9.x/main/ 
    

    打开文件名为postgresql.conf

    sudo vi postgresql.conf 
    

    此行添加到该文件

    listen_addresses = '*' 
    

    命名然后打开文件pg_hba.conf

    sudo vi pg_hba.conf 
    

    ,并添加此行该文件

    host all all 0.0.0.0/0 md5 
    

    它允许用加密的密码访问所有用户的所有数据库

    重新启动服务器

    sudo /etc/init.d/postgresql restart 
    
    +5

    嗨,不工作在UBUNTU 16 LTS与pg9.5 ...你有一个完整的'pg_hba.conf'和'postgresql.conf'脚本适应这个env和权限?我需要使用'PGPASSWORD = postgres psql -U postgres'。 –

    4

    检查在postgresql.conf中定义的端口。我安装postgres 9.4使用端口5433而不是5432

    0

    我认为你使用的是机器名而不是主机的ip。

    当我用机器的名字尝试时,我得到了同样的错误。因为,只有当客户端和主机都在同一网络中并且它们安装了相同的操作系统时才允许它。

    0

    对我来说,我没有改变在蔚蓝的默认安全策略管理门户。原来是22号港口,其余全部被拒绝。只要我添加5432端口,一切都会变好。

    1

    确保设置在配置文件中正确应用。

    vim /etc/postgresql/x.x/main/postgresql.conf 
    

    请尝试以下操作以查看日志并找到您的问题。

    tail /var/log/postgresql/postgresql-x.x-main.log 
    
    相关问题