2015-04-29 24 views
15

Tôi không chắc chắn làm thế nào để khắc phục vấn đề nàydjango.db.utils.OperationalError Không thể kết nối đến máy chủ

Tôi không có ý tưởng tại sao tôi nhận được lỗi này khi tôi cố gắng 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? 

Khi tôi cố gắng để kết nối với postgres:

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

Bạn có thể cho chúng tôi biết nội dung của settings.py của bạn (đặc biệt là phần trên cơ sở dữ liệu) không? – LaundroMat

+0

@LaundroMat cập nhật – Liondancer

Trả lời

30

Có thể có một số sự cố:

  1. PostgreSQL hiện không hoạt động. Kiểm tra nó với sudo service postgresql status
  2. Postgressql của bạn không chạy trên cổng 5432. Bạn có thể kiểm tra xem nó gõ sudo netstat -nl | grep postgres

  3. Bạn có điều gì sai cố gắng để kết nối với db của bạn như tên người dùng, mật khẩu hoặc các databasename. Kiểm tra xem họ có phải là những gì mà bưu điện yêu cầu bạn kết nối nó không và đó là db_name mà bạn muốn truy cập.

  4. Sự cố với postmaster.pid ở postgres. Nó có thể xảy ra vì tắt máy không được thực hiện một cách không đúng cách. Nó làm cho nhắc nhở một pid còn sống mà không cho phép máy chủ của bạn bắt đầu. Để khắc phục nó, bạn phải:

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

    Sau này nó sẽ chạy đúng nếu bạn thực hiện các runserver của postgres

Trợ giúp trong Mac OSX: How to start PostgreSQL server on Mac OS X?

+1

Tôi đã sử dụng 2 lệnh mà bạn đã cung cấp: 'bash: service: lệnh không tìm thấy 'và' netstat: lunt: giao thức chưa biết hoặc chưa được vạch ra' – Liondancer

+0

bây giờ nó được cập nhật. Netstat có nguồn gốc từ các hệ thống unix –

+0

'netstat: lnt: giao thức không xác định hoặc chưa được phác thảo' =/ – Liondancer

0

Đối với Windows

Go để tìm kiếm thanh và chỉ cần viết "Open psql" và nhấn Enter.

Khi màn hình được mở, chạy lại dự án django.

Các vấn đề liên quan