我最近停止了 postgresql 数据库(之前运行良好),几天后,当我尝试启动它时,出现了以下错误:
2011-01-03 23:56:27 CLST LOG: could not translate host name "localhost", service "5432" to address: Name or service not known
2011-01-03 23:56:27 CLST WARNING: could not create listen socket for "localhost"
2011-01-03 23:56:27 CLST FATAL: could not create any TCP/IP sockets
我正在运行 Ubuntu 9.1,并且使用通常
/etc/init.d/postgresql-8.4 start and stop
有什么提示吗?
答案1
检查 /etc/hosts 上的所有权和权限?
在配置中指定 127.0.0.1 来隔离问题。
答案2
要么是您的/etc/hosts
或/etc/nsswitch.conf
搞乱了,nscd
如果正在使用,则行为疯狂,要么是 libc 中的某些内容被破坏了。
答案3
首先,我会通过尝试 ping 来仔细检查是否可以解析计算机上的“localhost”。然后,使用“netstat -ln | grep 5432”行确保没有其他服务正在使用该端口。
如果计算机上有其他服务或 pgsql 实例使用同一端口,即使该端口位于单独的网络适配器上,pgcluster 也不会启动。如果是这种情况,您只需尝试更改 postgresql.cf 文件中的端口号即可恢复 pgsql。