【问题标题】:Postgresql connection via terminal - pgadmin通过终端连接 Postgresql - pgadmin
【发布时间】:2013-02-05 18:42:15
【问题描述】:

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

PostgreSQL 设置:

  • postgresql.conf -> 允许所有传入连接 (*) 并设置 ssl TRUE
  • pg_hba.conf -> 经过大量更改后,我发现它似乎可以使用此设置:

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),建立到 virtualbox (ubuntu) 的 ssh 连接,它正在工作。

  3. 在端口 5432 上 ping 我的访客机器也可以。

  4. 在我的主机(雪豹)上打开 pgadmin -> 添加服务器 192.68.56.1 和数据库 pluto,用户 pippo。连接有效,我看到了数据库。

  5. 尝试在雪豹中打开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
    

我也尝试通过我的 Java 程序进行连接,但我遇到了同样的错误。
我究竟做错了什么?

【问题讨论】:

  • 请注意:pgadmin3 (1.16) 的 SQL 编辑器的响应速度相当于在 50 波特调制解调器上每分钟输入 100 个字。局域网应该没问题。
  • postgresql.conf 中的 listen_addresses 设置是什么?

标签: postgresql connection postgresql-9.1


【解决方案1】:

pgAdmin 在默认情况下尝试使用和不使用 SSL 进行连接。

我怀疑您只是尝试通过psql 连接没有 SSL,而服务器似乎需要 SSL 进行连接。试试:

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

More about sslmode in the manual.

【讨论】:

  • 我收到以下错误信息:psql: server does not support SSL, but SSL is required
  • 我会设置 log_statement = all,连接 pgAdmin 和 psql 并检查服务器日志以找出差异。一定有一些东西不在你的问题中。你是从同一台机器上连接的,相同的 IP 192.168.56.1 对两者都是可见的吗?
  • 我正在连接到同一台机器,为虚拟机分配了一个静态 IP 地址 192.168.56.1,我可以从主机 ping 这个地址,所以它是可见的,也在端口 5432 上。 .
  • 已使用 log_statement = all,但我看不到任何看起来不同的东西。连接字符串是:2013-02-05 21:25:50 信息:使用连接字符串打开连接:dbname='pluto' user='pippo' password='XXXXXX' port=5432 sslcompression=0 application_name='pgAdmin III.浏览器'
  • @Patric:你在日志中看到 psql 失败的尝试了吗?如果没有,您可能正在尝试连接到不同的服务器..(您不需要log_statement = all 来检查。)
【解决方案2】:

从命令行打开我的查询到 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"

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

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

托管所有 ::/0 信任

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2018-04-19
    • 2020-08-27
    • 2023-02-20
    • 2018-10-07
    • 1970-01-01
    • 2021-06-05
    相关资源
    最近更新 更多