在Ubuntu 12.04上,我安装了pg和pgadmin。
我可以使用浏览器访问localhost / phppgadmin 。
我也可以这样做: IP / phppgadmin 。
但是,我不能使用IP地址来使用pgadmin连接到pg。
它报告服务器不在监听。
任何想法呢?
PostgreSQL默认只在本地的UNIX sockect上侦听。 要在您的postgresql.conf文件中启用TCP / IP端点取消注释:
listen_addresses ='*'
其中“*” – 在所有接口上侦听。 或者把你的IP号码放在这里,如果你只想听特定的IP。
http://www.postgresql.org/docs/9.1/static/runtime-config-connection.html#GUC-LISTEN-ADDRESSES
你从PGAdmin得到的错误信息是什么? 日志中是否有任何东西( /var/log/postgresql.log或类似的东西)?
我猜你没有在你的pg_hba.conf适当的auth-setting,因为PostgreSQL默认只允许本地用户通过unix-sockets连接,而不是通过你想要的TCP。 你可能需要类似的东西
host all all 0.0.0.0 pam
要么
hostssl all all 0.0.0.0 md5
在pg_hba.conf – 阅读上面的链接以获取正确的文档:)
感谢帮助我缩小问题范围的不同用户。 其实有很多问题。 我在这里将他们概括为一个完整的答案,并希望别人可能会受益。
像RJS说,我不得不把listen_addresses接受多个IP。 这是最初完成,但后来我意识到,该行前有一个#这意味着它被评论。 所以我摘下了评论。
即使在停止PG服务器之后, pg_lsclusters显示仍有一个服务正在运行。 所以我不能重新启动它,因为它报告它已经在运行。
然后通过使用ps我发现一个相关的程序被称为pgpool使用相同的端口,它不会让默认的5432端口被PG使用。 所以我使用sudo pgpool stop了terminal。
然后我重新启动postgres服务器,一切都很好!
在寻找答案时,IRC(#postgresql)上的志愿者RhodiumToad告诉我,我所做的事情并不是必要的。 有人问我为什么拥有它。 奇怪的是我从来没有安装过它。 也许pgpool被安装了一些额外的东西。
其他问题之一是我无法让pgadmin在Windows上启动。 并正确连接。 有一个libpq.dll丢失。 显然(你会发现在这个关于stackoverflow的另一篇文章),该文件在Win XP的几个地方。 所以我把所有的postgres DLL文件复制到Windows / System32,并修复了这个问题。
而已! 希望这可以帮助。