我正在用postgresql 9.3开发一个rails应用程序。 当我今天尝试启动乘客服务器时,我得到:
PG::ConnectionBad - could not connect to server: Connection refused Is the server running on host "localhost" (217.74.65.145) and accepting TCP/IP connections on port 5432?
我想,没有什么大不了的。 重新启动postgres总是解决问题。 所以我跑sudo service postgresql restart并得到:
* Restarting PostgreSQL 9.3 database server * The PostgreSQL server failed to start. Please check the log output: 2014-06-11 10:32:41 CEST LOG: could not bind IPv4 socket: Cannot assign requested address 2014-06-11 10:32:41 CEST HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. 2014-06-11 10:32:41 CEST WARNING: could not create listen socket for "localhost" 2014-06-11 10:32:41 CEST FATAL: could not create any TCP/IP sockets ...fail!
我的postgresql.conf指向默认值: localhost和端口5432 。 我试图改变端口,但错误信息是一样的(除了端口的变化)。
两个ps aux | grep postgresql ps aux | grep postgresql和ps aux | grep postmaster ps aux | grep postmaster没有任何回报。
编辑:
在postgresql.conf我将listen_addresses更改为127.0.0.1而不是localhost ,它做了伎俩,服务器重新启动。 我也必须编辑我的应用程序的数据库configuration,并指向127.0.0.1而不是localhost 。 但是,现在的问题是,为什么localhost被认为是217.74.65.145而不是127.0.0.1 ?
这是我的/etc/hosts :
127.0.0.1 local 127.0.1.1 jacek-X501A1 127.0.0.1 something.name.non.example.com 127.0.0.1 company.something.name.non.example.com
您的/etc/hosts已损坏。 第一行应该阅读
127.0.0.1 localhost something.name.non.example.com company.something.name.non.example.com