繁体   English   中英

如何将pgAdmin III(Windows)连接到postgresql(虚拟框中的Linux)

[英]How to connect pgAdmin III (Windows) to postgresql (Linux in virtual box)

我的虚拟Linux机器上有一个postgresql恶魔,并且刚在Windows机器上安装了pgAdmin III。 现在,我想配置第一个连接。

到目前为止,我做了什么:

  • 我编辑了/etc/postgresql/9.1/main/pg_hba.conf并添加了一行内容,使该恶魔接受来自Windows计算机的连接:
    host all all 192.168.123.45/32 md5
  • 我为系统用户postgres设置了一个shell密码( sudo passwd postgres
  • 编辑:这似乎无关紧要
    我将/usr/share/postgresql/9.1/pg_service.conf.sample复制到/etc/postgresql-common/pg_service.conf并取消注释示例服务,这给了我
    [postgres的]
    DBNAME = postgres的
    用户= postgres的
  • 编辑:这似乎无关紧要
    我在/etc/environment放入一行以指向pgservice.conf文件:
    PGSERVICEFILE=/etc/postgresql-common/pg_service.conf
    (有效;当我复制PuTTY会话时,它具有此变量)
  • 每次更改后,我都重新启动了数据库服务器:
    sudo /etc/init.d/postgresql restart
  • 最后,我重新启动Linux机器,

服务器似乎已成功重新启动:

[ ok ] Restarting PostgreSQL 9.1 database server: main.

但是,当我尝试连接到服务时,pgAdmin III给我一条错误消息:
连接服务器时出错:找不到服务“ postgres”的定义。

dmesg | grep postgres dmesg | grep postgres给了我一行:

[   18.054965] postgres (2242): /proc/2242/oom_adj is deprecated, please use /proc/2242/oom_score_adj instead.

我不知道postgresql是否完全使用了我的pq_service.conf ,还是其他问题? 任何帮助表示赞赏...

编辑:我原来的问题,“ How can I know whether postgresql uses my pg_service.conf file? ”,似乎可以回答-根本没有。 我仍然无法连接; 但现在问题不再与错误消息匹配。

我从“新服务器注册”数据中删除了“服务”条目。 现在,我得到另一个错误-类似于“用户>> postgres <<失败的密码验证”。 我确信密码正确-我只是把它...我注释掉从我的SSH密钥测试它authorized_keys文件。

我很乐意用ssh键连接,但这似乎也很困难。 使用PuTTY,我的密钥是从Pageant取得的,并且我登录时没有任何问题。 pgAdmin谈论“ SSH隧道”,但是我通常不需要此本地计算机的隧道...

我还是试图创建一个隧道。

  • 腻子会议:
    • 源端口是5432
    • 目的地是my-vbox.host.name:5432
  • 在pgAdmin中,“ SSH隧道”:
    • 用户名postgres
    • 使用身份文件
    • 隧道主机localhost →错误:
      SSH error: Could not connect to socket with error code 10051
    • 隧道主机localhost:5432 →错误:
      SSH error: Unable to resolve host: localhost:5432
    • 隧道主机127.0.0.1:5432错误:
      SSH error: Unable to resolve host: 127.0.0.1:5432

应该怎么配置呢?!

我最终设法以db用户tobias身份进行连接(我在使用psql本地连接时从未遇到过问题)。

# sudo -u postgres psql postgres
psql (9.1.9)
Type "help" for help.

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 tobias    | Superuser                                      | {}

postgres=# ALTER USER tobias WITH PASSWORD 's3cr3t';
ALTER ROLE

完成此操作后,我可以使用刚刚设置的密码以tobias连接。 “维护数据库”恰好是template1 我没有尝试改变这一点。

供进一步参考-我在/etc/postgresql/9.1/main/postgresql.conf激活了log_connections并观看了日志:

sudo tail -f /var/log/postgresql/postgresql-9.1-main.log

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM