django.db.utils.OperationalError:服务器意外关闭了连接

时间:2016-11-16 18:31:45

标签: python django postgresql

无法解决错误。

django.db.utils.OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

当我运行下面的任何命令时,我继续获取Trace

  1. python manage.py makemigrations
  2. python manage.py runserver
  3.   

    Unhandled exception in thread started by <function wrapper at 0x0000000003DAC4A8> Traceback (most recent call last): File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper fn(*args, **kwargs) File "C:\Python27\lib\site packages\django\core\management\commands\runserver.py", line 124, in inner_run self.check_migrations() File "C:\Python27\lib\site-packages\django\core\management\base.py", line 437, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "C:\Python27\lib\site-packages\django\db\migrations\executor.py", line 20, in __init__ self.loader = MigrationLoader(self.connection) File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 52, in __init__ self.build_graph() File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 203, in build_graph self.applied_migrations = recorder.applied_migrations() File "C:\Python27\lib\site-packages\django\db\migrations\recorder.py", line 65, in applied_migrations self.ensure_schema() File "C:\Python27\lib\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 "C:\Python27\lib\site-packages\django\db\backends\base\base.py", line 231, in cursor cursor = self.make_debug_cursor(self._cursor()) File "C:\Python27\lib\site-packages\django\db\backends\base\base.py", line 204, in _cursor self.ensure_connection() File "C:\Python27\lib\site-packages\django\db\backends\base\base.py", line 199, in ensure_connection self.connect() File "C:\Python27\lib\site-packages\django\db\utils.py", line 94, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "C:\Python27\lib\site-packages\django\db\backends\base\base.py", line 199, in ensure_connection self.connect() File "C:\Python27\lib\site-packages\django\db\backends\base\base.py", line 171, in connect self.connection = self.get_new_connection(conn_params) File "C:\Python27\lib\site-packages\django\db\backends\postgresql\base.py", line 176, in get_new_connection connection = Database.connect(**conn_params) File "C:\Python27\lib\site-packages\psycopg2\__init__.py", line 164, in connect conn = _connect(dsn, connection_factory=connection_factory, async=async) django.db.utils.OperationalError: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

    提前致谢。

4 个答案:

答案 0 :(得分:1)

这通常意味着您的PostgreSQL服务器运行不正常。您可能希望通过

重新启动它

Linux的

sudo /etc/init.d/postgresql restart

sc stop postgresql
sc start postgresql

Mac OS X

How to start PostgreSQL server on Mac OS X?

如果重新启动修复它,请注意先前服务器故障的根本原因仍需要调查。

答案 1 :(得分:0)

我不认为重启数据库服务器应该是第一步。 这仅在迁移中发生吗?对该数据库和/或数据库服务器的其他查询是否符合预期?

答案 2 :(得分:0)

我解决了再次卸载并安装postgresql的问题。

在Mac上

卸载:

struct StringKey: CodingKey, Hashable, CustomStringConvertible {
    var description: String {
        return stringValue
    }

    let stringValue: String
    init(_ string: String) { self.stringValue = string }
    init?(stringValue: String) { self.init(stringValue) }
    var intValue: Int? { return nil }
    init?(intValue: Int) { return nil }
}

安装:

brew uninstall --force postgres

PS:更改Linux或Windows的命令。

之后,运行makemigrations并进行迁移。

答案 3 :(得分:0)

在父进程中建立的进程派生和连接在子进程中不起作用时发生。

我使用 huggingface/tokenizersBERT 来获取句子嵌入,然后将它们插入到 Postgres 数据库中。首先建立数据库连接,然后分词器分叉,结果是相同的 django.db.utils.OperationalError

我解决了by disabling TOKENIZER_PARALLELISM。尽管对于您的问题,升级到更高版本的 Django 可能会有所帮助,如here 所述。