새 시스템에서 db에 연결하는 데 문제가 있습니다. 파이썬의 버전은 같습니다. 여기가있는 DB에 대한 연결 문자열이며, 오류 메시지가 변화를 볼 수 있지만, 연결 문자열 나는 다음과 같은 오류가 정확한 이유 때 내가 운동 할 수 없습니다 여기 pg8000 postgres 연결 문제 (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'))
이 오류 메시지의 출처를 알 수 없습니다. 나는 시도했다 :
포장 문자열 u'ss'
포트를 제거 퍼팅 str()
에 추가 소켓 타임 아웃 등 등
내가 pg8000에서 core.py 코드에서 보았을 때 인증에서 오는 것으로 보인다 당신이 그것을 쫓아가는 경우 오류. 이 오류 (int 및 str)가 인증 오류를 누그러 뜨릴 수 있다고 생각합니다.
메시지 코드
AUTHENTICATION_REQUEST = B ("R")
'str()'에'socket_timeout'과'port' 값을 개별적으로 래핑 해 보았습니까? – TheSoundDefense
@ TheSoundDefense, socket_timeout 및 포트가 정수로 필요합니다. 포장을 시도했습니다. str (dbsettings [ 'user']), password = str (dbsettings [ 'password']), 데이터베이스 = str (dbsettings [ 'database']), 포트 = str (dbsettings [ 'host']) dbsettings [ 'port'], ssl = dbsettings [ 'ssl'] – disruptive