运行Django的syncdb时的Postgresql套接字错误(mac OS 10.7.5)

时间:2012-10-29 00:14:51

标签: python django postgresql

我试图运行Django的syncdb操作,但收到以下错误:

psycopg2.OperationalError: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

我已阅读this question的答案,并尝试了以下内容:

  • 改变" listen_address" to" localhost"或" *"在/Library/PostgreSQL/9.1/data/potsgresql.conf中
  • 更改"主持人" to" localhost"在我的settings.py文件中(对于Django)
  • 用户设置为" postgres"在settings.py中使用正确的密码

(我在每一步后重新启动了postgresql服务器。)

我还检查了我的pg_hba.conf文件,看看Unix域套接字是否接受来自所有用户的连接(基于this page)。这就是我在那里所拥有的:

# "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

我之前从未遇到过这个问题。我最近升级到Lion,正在开发一个新的virtualenv,只安装了最少的模块。

2 个答案:

答案 0 :(得分:1)

Bradley Ayers提供了答案:

  • 在postgres.conf中将“unix_socket_directory”设置为“/ var / pgsql_socket /”
  • 执行以下命令:
    • “$ sudo dscl.sundnd / Groups / _postgres GroupMembership postgres”
    • “$ sudo chmod g + w,o + rx / var / pgsql_socket /”
  • 重启postgresql

答案 1 :(得分:0)

你的数据库没有运行试试

pg_ctl -D /usr/local/var/postgres  start

假设你的postgre数据目录在哪里