Postgresql通过终端连接 - pgadmin

时间:2013-02-05 18:42:16

标签: postgresql connection postgresql-9.1

我在使用SSH连接到我的virtualbox(ubuntu)postgres服务器时遇到问题。 我设置得很好并且正确。

PostgreSQL设置:

  • postgresql.conf - >允许所有进入连接(*)并设置ssl TRUE
  • pg_hba.con f - >经过大量的改动之后我才开始尝试使用这个设置:

IP4

host all all 0.0.0.0/0 trust
hostssl all all 0.0.0.0/0 trust
host all all 192.168.x.x/32 trust 
hostssl all all 192.168.x.x/32 trust 

我试过了:

  1. 在虚拟机上重启了我的postgres服务器。

  2. 然后我去了我的主机(Snow Leopard),建立了一个到虚拟机(ubuntu)的ssh连接,它正在运行。

  3. 在端口5432上ping我的来宾机也可以。

  4. 在我的主机(Snow Leopard)上打开pgadmin - >添加了服务器192.68.56.1和数据库pluto,用户pippo。连接工作正常,我看到了数据库。

  5. 尝试在Snow Leopard中打开TERMINAL并执行cmd:

    psql -h 192.168.56.1 -U pippo -d pluto
    

    有错误:

    psql: FATAL:  no pg_hba.conf entry for host "192.168.56.1", 
                  user "pippo", database "pluto", SSL off
    
  6. 我也尝试通过我的Java程序连接,我得到了同样的错误 我究竟做错了什么?

2 个答案:

答案 0 :(得分:0)

pgAdmin默认尝试使用和不使用SSL进行连接。

我怀疑您只是尝试通过psql连接而不使用 SSL,而服务器似乎需要SSL才能进行连接。尝试:

psql "sslmode=require host=192.168.56.1 dbname=pluto" pippo

More about sslmode in the manual.

答案 1 :(得分:0)

从命令行打开我的查询到pgAdmin:

-f 包含要在查询窗口中加载的SQL脚本的文件

-qc 没有密码的连接字符串(您也可以使用ssl连接)

"C:\Program Files\PostgreSQL\9.4\bin\pgAdmin3.exe" -f "C:\slqFiles\FindFunctionByName.sql" -qc "host=localhost port=5432 dbname=myDatabase user=postgres"

密码将从位于应用程序文件夹中的密码文件中收集:%APPDATA%\ postgresql \ pgpass.conf

您需要权限才能进行连接。尝试在下一行添加到C:\ Program Files \ PostgreSQL \ 9.6 \ data \ pg_hba.conf:

托管所有:: / 0信任