2015-04-29 45 views
15

nie jestem pewien, jak rozwiązać ten problemdjango.db.utils.OperationalError nie można połączyć się z serwerem

Nie mam pojęcia, dlaczego ja otrzymuję ten błąd, gdy próbuję runserver:

Performing system checks... 

System check identified no issues (0 silenced). 
Unhandled exception in thread started by <function wrapper at 0x1085589b0> 
Traceback (most recent call last): 
    File "/Library/Python/2.7/site-packages/django/utils/autoreload.py", line 222, in wrapper 
    fn(*args, **kwargs) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run 
    self.check_migrations() 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 159, in check_migrations 
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) 
    File "/Library/Python/2.7/site-packages/django/db/migrations/executor.py", line 17, in __init__ 
    self.loader = MigrationLoader(self.connection) 
    File "/Library/Python/2.7/site-packages/django/db/migrations/loader.py", line 49, in __init__ 
    self.build_graph() 
    File "/Library/Python/2.7/site-packages/django/db/migrations/loader.py", line 184, in build_graph 
    self.applied_migrations = recorder.applied_migrations() 
    File "/Library/Python/2.7/site-packages/django/db/migrations/recorder.py", line 59, in applied_migrations 
    self.ensure_schema() 
    File "/Library/Python/2.7/site-packages/django/db/migrations/recorder.py", line 49, in ensure_schema 
    if self.Migration._meta.db_table in self.connection.introspection.get_table_list(self.connection.cursor()): 
    File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 165, in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 138, in _cursor 
    self.ensure_connection() 
    File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 133, in ensure_connection 
    self.connect() 
    File "/Library/Python/2.7/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 133, in ensure_connection 
    self.connect() 
    File "/Library/Python/2.7/site-packages/django/db/backends/__init__.py", line 122, in connect 
    self.connection = self.get_new_connection(conn_params) 
    File "/Library/Python/2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 134, in get_new_connection 
    return Database.connect(**conn_params) 
    File "/Library/Python/2.7/site-packages/psycopg2/__init__.py", line 164, in connect 
    conn = _connect(dsn, connection_factory=connection_factory, async=async) 
django.db.utils.OperationalError: could not connect to server: Connection refused 
     Is the server running on host "127.0.0.1" and accepting 
     TCP/IP connections on port 5432? 

Kiedy próbuję połączyć się z PostgreSQL:

psql: 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"? 

settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'beerad', 
     'USER': 'bli1', 
     'PASSWORD': '', 
     'HOST': '127.0.0.1', 
     'PORT': '5432', 
    } 
} 
+0

Czy możesz pokazać nam zawartość swojego pliku settings.py (szczególnie część w bazach danych)? – LaundroMat

+0

@LaundroMat updated – Liondancer

Odpowiedz

30

To może być pewne problemy:

  1. PostgreSQL nie jest uruchomiony. Sprawdź to z sudo service postgresql status
  2. Twój PostgresSQL nie jest uruchomiony na porcie 5432. Można to sprawdzić wpisując sudo netstat -nl | grep postgres

  3. Masz coś złego próbuje połączyć się z db jak nazwa użytkownika, hasło lub databasename. Sprawdź, czy są one tym, czego Postgres pyta o połączenie, a jest to nazwa_bazy_danych, do której chcesz uzyskać dostęp.

  4. Problemy z postmaster.pid w postgresie. Może się tak zdarzyć z powodu niewłaściwego zamknięcia. Przypomina to pidowi przy życiu, że nie pozwala na uruchomienie serwera. Aby to naprawić trzeba:

    * rm /usr/local/var/postgres/postmaster.pid 
    * pg_resetxlog -f /usr/local/var/postgres 
    

    Po tym powinna ona działać prawidłowo, jeśli dokonać runserver POSTGRES'a

pomoc w Mac OSX: How to start PostgreSQL server on Mac OS X?

+1

Przetestowałem 2 polecenia, które podałeś: 'bash: service: command not found ' i 'netstat: lunt: unknown or uninstrumented protocol' – Liondancer

+0

teraz jest zaktualizowany, powinien działać. Netstat pochodzi z systemów uniksowych –

+0

'netstat: lnt: protokół nieznany lub niezabezpieczony' =/ – Liondancer

0

Dla Windows

Go szukać poprzeczkę i po prostu napisać "Open psql" i naciśnij Enter.

Po otwarciu ekranu uruchom ponownie projekt django.

Powiązane problemy