pg8000 postgres проблемы с подключением из python

У меня проблемы с подключением к БД в новой системе. Версия Python такая же. Вот строка подключения для БД, которая там есть, и вы увидите изменение сообщения об ошибке, но я не могу понять, почему, когда строка подключения верна, я получаю следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pg8000/__init__.py", line 148, in connect
    user, host, unix_sock, port, database, password, socket_timeout, ssl)
  File "/usr/local/lib/python2.7/dist-packages/pg8000/core.py", line 1157, in __init__
    raise exc_info()[1]
TypeError: cannot concatenate 'str' and 'int' objects

Вот правильная строка подключения:

conn = DBAPI.connect(host='sql2', user='XXX', password='XX', database='XX', socket_timeout=100, port=5432)

и когда я изменяюсь на что-то неверное:

conn = DBAPI.connect(host='sql2', user='XXX', password='XX', database='XX', socket_timeout=100, port=100)

и следующее сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/opt/Centos5.8/python-2.7.4_scipy0.13/lib/python2.7/site-packages/pg8000/__init__.py", line 148, in connect
    user, host, unix_sock, port, database, password, socket_timeout, ssl)
  File "/mnt/opt/Centos5.8/python-2.7.4_scipy0.13/lib/python2.7/site-packages/pg8000/core.py", line 854, in __init__
    raise InterfaceError("communication error", exc_info()[1])
pg8000.errors.InterfaceError: ('communication error', error(111, 'Connection refused'))

Я не могу понять, откуда это сообщение об ошибке - кажется странным. Я пробовал:

упаковочная строка в str()сдачи u'ss'удаление порта, добавление времени ожидания сокета и т. д.

Когда я посмотрел код core.py из pg8000, оказалось, что это происходит из-за ошибки аутентификации, если вы прогоняете ее. Я думаю, что эта ошибка (int и str) может затмить ошибку аутентификации.

Коды сообщений

AUTHENTICATION_REQUEST = b("R")

1 ответ

Решение

Это ошибка в pg8000. Это было исправлено в pg8000-1.9.11. Ошибка - ошибка в сообщении об ошибке, с которой столкнулся pg8000 при попытке аутентификации в базе данных.

Другие вопросы по тегам