为Django安装postgresql

时间:2013-06-18 13:27:48

标签: django postgresql install

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

无法连接到数据库postgres:

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

1 个答案:

答案 0 :(得分:1)

您可以通过两种不同的方式连接到PostgreSQL:

  1. Unix套接字。它们是文件系统上的特殊文件,进程可以写入和读取。
  2. TCP套接字,其主要目的是允许在Internet协议之上进行机器间通信,但这可以很好地用于连接同一台机器上的两个进程。
  3. 您收到的错误消息告诉您Django尝试方法一,寻找代表Unix套接字的特殊文件,但没有成功。你的PostgreSQL实例很可能在TCP套接字而不是Unix套接字上进行侦听。要确认这一点,请尝试使用psql命令行客户端连接到PostgreSQL,如下所示:

    psql -h localhost -U user databse_name
    

    如果您成功,那么您可以通过在HOST文件中设置settings.py密钥,将Django配置为通过TCP套接字连接到localhost:

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