postgres:localhost没有连接

时间:2013-03-26 18:36:15

标签: postgresql postgresql-9.1

我的postgreSQL.conf看起来像

# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost', '*' = all
                                        # (change requires restart)
port = 5432                             # (change requires restart)

我也知道postgres正在运行

air:data postgres$ ps -aef | grep postgres
  504 16474 16473   0 11:34AM ??         0:00.00 postgres: logger process
  504 16476 16473   0 11:34AM ??         0:00.00 postgres: writer process
  504 16477 16473   0 11:34AM ??         0:00.00 postgres: wal writer process
  504 16478 16473   0 11:34AM ??         0:00.00 postgres: autovacuum launcher process
  504 16479 16473   0 11:34AM ??         0:00.00 postgres: stats collector process
    0 16087 16078   0 10:54AM ttys001    0:00.03 su - postgres
  504 16473     1   0 11:34AM ttys001    0:00.22 /Library/PostgreSQL/9.1/bin/postgres -D/Library/PostgreSQL/9.1/data
  504 16484 16088   0 11:34AM ttys001    0:00.00 grep postgres

但我无法连接

 psql -Uuser -W
Password for user user:
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

另外,当我运行以下

 lsof -i tcp:5432
 ✘ me@air11:37:13 ⮀ ~ ⮀ netstat -a | grep postgres
tcp6       0      0  *.postgres             *.*                    LISTEN
tcp4       0      0  *.postgresql           *.*                    LISTEN

它表示port 5432上没有任何内容正在运行 我错过了什么?

更新

我的pg_hba.conf看起来像

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

4 个答案:

答案 0 :(得分:3)

在pg_hba.conf中:

host    all             all             127.0.0.1/32            trust

最后一列更改为trust

答案 1 :(得分:1)

您需要使用psql程序,该程序来自您安装的PostgreSQL程序包,而不是作为Apple系统一部分的psql目录中的/usr/bin

例如,如果使用postgres.app,他们会在documentation中说:

  

Mac OS 10.7附带较旧版本的PostgreSQL,可以是   从以下命令开始:

     

$ psql -h localhost PostgreSQL附带了一个有用的星座   您可能想要的二进制文件,如pg_dump或pg_restore   使用。继续并添加Postgres.app附带的/ bin目录   到您的PATH(最好是.profile,.bashrc,.zshrc等)   确保为每个终端会话设置此项:)

     

PATH = “/应用/ Postgres.app /内容/ MacOS的/ bin中:$ PATH”
  一旦你的   路径设置正确,你应该能够在没有a的情况下运行psql   主办。 (如果没有,请检查是否正在加载正确的版本   PATH通过做哪个psql)

如果使用预先打包的postgresql的另一个来源,那么路径也是一样的。

答案 2 :(得分:0)

不确定为什么会发生这种情况,但我发现postgresapp.com非常适合使用

我在http://www.pgadmin.org/使用此功能,到目前为止我正在顺利运行

答案 3 :(得分:0)

您可以尝试停止服务并再次启动该服务。一旦重新加载配置文件。在工作与否时再次检查。