Installing postgresql for Django



我安装了postgresql和(我认为)pyscopg2。我想运行postgresql与django。我尝试了命令"createdb mydb",我得到了如下所示的错误消息。我该怎么办?

无法连接数据库:

could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我正在运行mac osx 10.8.2.

当我输入ps auwwx|grep postg时,我得到:

robbie          27589   0.0  0.0  2443176   1528   ??  Ss    7:25am   0:00.01 postgres: autovacuum launcher process       
robbie          27588   0.0  0.0  2443044    552   ??  Ss    7:25am   0:00.01 postgres: wal writer process       
robbie          27587   0.0  0.0  2443044    592   ??  Ss    7:25am   0:00.16 postgres: writer process       
robbie          27586   0.0  0.0  2443044    612   ??  Ss    7:25am   0:00.00 postgres: checkpointer process       
robbie          27584   0.0  0.1  2443044   3524   ??  S     7:25am   0:00.02 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
robbie          27626   0.0  0.0  2423572     24 s000  S+    7:36am   0:00.00 grep postg
robbie          27590   0.0  0.0  2439324    444   ??  Ss    7:25am   0:00.01 postgres: stats collector process

当我输入psql -V I得到:psql (PostgreSQL) 9.1.4当我输入which psql时,我得到:/usr/bin/psql

你可以用两种不同的方式连接到PostgreSQL:

  1. Unix socket。它们是文件系统中进程可以写入和读取的特殊文件。
  2. TCP套接字,其主要目的是允许在Internet协议之上的机器间通信,但它可以很好地用于连接同一机器上的两个进程。

你得到的错误信息告诉你Django尝试了方法一,寻找一个代表Unix套接字的特殊文件,但是没有成功。你的PostgreSQL实例很可能监听TCP套接字而不是Unix套接字。为了确认这一点,尝试使用psql命令行客户端连接到PostgreSQL,如下所示:

psql -h localhost -U user databse_name

如果你成功了,那么你可以通过在你的settings.py文件中设置HOST密钥来配置Django通过TCP套接字连接到本地主机:

DATABASES = {
    'default': {
     [...]
        'HOST': 'localhost',
     [...]
    }
}

最新更新