簡體   English   中英

OperationalError:無法連接到服務器:操作超時-嘗試將數據庫從sqlite更改為postresql時

[英]OperationalError: could not connect to server: Operation timed out - when trying to change database from sqlite to postresql

我正在按照本教程配置zappa應用程序,以便可以將django應用程序使用AWS lambda函數。 我要“配置數據庫”,這就是我想要做的。 我的django應用使用了postgresql,因此我試圖將我的zappa應用更改為postgresql(從默認的sqlite)。 我已經在Amazon RDS上成功創建了一個postgres數據庫實例。 實例設置“可Publicly accessible設置為“ Yes

我還已經在我的zappa應用程序中成功安裝了psycopg2psycopg2-binary ,以及更改了數據庫設置:

DATABASES = {
    'default': {
        'ENGINE': config('DB_ENGINE'),
        'NAME': config('DB_NAME'),
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'), 
        'HOST': config('DB_HOST'),
        'PORT': '5432',
    }
}

但是,當我在zappa應用程序中執行makemigrations ,出現以下錯誤:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/core/management/commands/makemigrations.py", line 110, in handle
    loader.check_consistent_history(connection)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/migrations/loader.py", line 282, in check_consistent_history
    applied = recorder.applied_migrations()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
    self.ensure_schema()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/Users/zorgan/Desktop/zappatest/env/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: Operation timed out
    Is the server running on host "****-db.**********.us-east-2.rds.amazonaws.com" (14.171.84.91) and accepting
    TCP/IP connections on port 5432?

知道是什么問題嗎?

您需要在aws防火牆或盒子本身上打開端口5432:

這是對該端口的測試:

➜ nmap -Pn -p 5432 14.171.84.91
Starting Nmap 7.70 ( https://nmap.org ) at 2018-06-18 17:54 EDT
Nmap scan report for static.vnpt.vn (14.171.84.91)
Host is up.

PORT     STATE    SERVICE
5432/tcp filtered postgresql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM