Django + Psycopg2: InterfaceError: only protocol 3 supported

匿名 (未验证) 提交于 2019-12-03 02:03:01

问题:

When loading pages in my Django + Postgresql setup I occasionally get this error but not all the time:

psycopg2 in connect

InterfaceError: only protocol 3 supported

psycopg2/__init__.py ? in connect          raise TypeError('missing dsn and no parameters')     else:         dsn = " ".join(["%s=%s" % (k, _param_escape(str(v)))             for (k, v) in items]) conn = _connect(dsn, connection_factory=connection_factory, async=async) if cursor_factory is not None:     conn.cursor_factory = cursor_factory return conn 

I have absolutely no idea what could be causing this.

My production.py settings file:

    DATABASES = {         'default': {             'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.             'NAME': 'mydbname',                      # Or path to database file if using sqlite3.             # The following settings are not used with sqlite3:             'USER': 'myuser',             'PASSWORD': 'mypassword',             'HOST': 'localhost',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.             'PORT': '',                      # Set to empty string for default.         }     } 

回答1:

http://initd.org/psycopg/docs/connection.html#connection.protocol_version

You didn't provide a version of postgres you are using.
Seems it's older than 7.4. In that case a solution will be to upgrade version of postgres
(or install older version of psycopg, but i think it's not good)



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!