Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:使用psql命令远程连接到Postgres实例_Postgresql_Psql - Fatal编程技术网

PostgreSQL:使用psql命令远程连接到Postgres实例

PostgreSQL:使用psql命令远程连接到Postgres实例,postgresql,psql,Postgresql,Psql,我想远程连接到Postgres实例。我知道我们可以使用psql命令来传递主机名 我尝试了以下方法: psql -U postgres -p 5432 -h hostname 我修改了目标机器上的/etc/postgresql/9.3/main/pg_hba.conf文件,默认情况下允许远程连接 我在文件中添加了以下行 host all all source_ip/32 trust 我使用 pg_ctlcluster 9.2 mycluster stop pg_ctlcluster 9.2 m

我想远程连接到Postgres实例。我知道我们可以使用psql命令来传递主机名

我尝试了以下方法:

psql -U postgres -p 5432 -h hostname
我修改了目标机器上的/etc/postgresql/9.3/main/pg_hba.conf文件,默认情况下允许远程连接

我在文件中添加了以下行

host all all source_ip/32 trust
我使用

pg_ctlcluster 9.2 mycluster stop
pg_ctlcluster 9.2 mycluster start
但是,当我尝试从源ip连接时,仍然会出现错误

服务器是否在主机“”上运行并在端口5432上接受TCP/IP连接

我到底做错了什么?

我明白了


必须在
postgresql.conf
中设置
listen\u addresses='*'
以允许来自任何ip/所有ip的传入连接我使用以下选项解决了此问题

  • 将您的数据库主机从网络团队中列入白名单,以确保您有权访问远程主机
  • 安装postgreSQL版本4或更高版本
  • 运行以下命令:
  • psql-h-p-U
    
    postgres服务器运行在什么操作系统上?请检查防火墙设置,因此,端口5432是开放的,可以接受连接假设您的客户端计算机具有
    ssh
    ,您也可以通过设置ssh隧道:
    ssh-L 5432:localhost:5432您的\u服务器\u ip
    并以与连接到localhost db相同的方式尝试与远程postgres的类似localhost的连接。这有助于调试。默认情况下,postgresql只在本地主机上侦听(许多发行版保持此默认值不变)将listen_addresses的值调整为“*”,以使postgresql侦听您的计算机拥有的所有地址。遵循此链接:这是安全问题还是正常做法?@Ben一般来说,应该只允许特定的IP地址连接到psql实例。非常有用,谢谢!
    psql -h <REMOTE HOST> -p <REMOTE PORT> -U <DB_USER> <DB_NAME>
    
    psql -h <IP_Address> -p <port_no> -d <database_name> -U <DB_username> -W
    
    psql -h 192.168.1.50 -p 5432 -d testdb -U testuser -W