dis*_*ive 1 python sql postgresql pg8000
我在连接到新系统上的数据库时遇到问题。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
Run Code Online (Sandbox Code Playgroud)
这是正确时我的连接字符串:
conn = DBAPI.connect(host='sql2', user='XXX', password='XX', database='XX', socket_timeout=100, port=5432)
Run Code Online (Sandbox Code Playgroud)
当我更改为不正确的内容时:
conn = DBAPI.connect(host='sql2', user='XXX', password='XX', database='XX', socket_timeout=100, port=100)
Run Code Online (Sandbox Code Playgroud)
以及以下错误消息:
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'))
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚此错误消息的来源 - 看起来很奇怪。我试过了:
包装带在str()
把u'ss'
移除口,增加插座超时等等等等。
当我查看 pg8000 中的 core.py 代码时,如果您追查它,这似乎来自身份验证错误。我认为这个错误(int 和 str)可能会掩盖身份验证错误。
AUTHENTICATION_REQUEST = b("R")