내 데이터베이스에 액세스하기 위해 sshtunnel을 만들려고합니다. SQLalchemy 및 pandas 함께 sshtunnel 패키지를 사용하고 있습니다.함수에서 sshtunnel이 작동하지 않습니다.
예 1
# run in terminal
ssh -L 5433:127.0.0.1:5432 [ssh_config]
# run in iPython
pd.read_sql_query(query, conn)
내 터미널에 SSH 터널을 만든 다음 팬더와 쿼리를 (위의 예를 참조)를 실행, 그것을 잘 작동하고 DataFrame이 반환됩니다.
나는 터널을 만든 다음 그 상황에서 연결을 생성 예 2, 그것은 작동하지 않습니다.
with SSHTunnelForwarder(
os.environ['SSH_ADDRESS'],
ssh_username=os.environ['SSH_USER'],
ssh_pkey=os.environ['SSH_PKEY'],
remote_bind_address=('127.0.0.1', 5432),
local_bind_address=('0.0.0.0', 5433)
) as sshserver:
conn = self.engine.connect()
pd.read_sql_query(query, conn)
conn.close()
sshserver.stop()
오류 메시지는 다음과 같습니다
OperationalError: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected
[SQL: '\nselect \nid\n\nfrom \nclean.accounts \n\nlimit 10\n']
진짜로 흥미로운 것은입니다이 문제를 '대체'. 이것은 한 번 실행하면 오류 메시지가 발생한다는 것을 의미합니다. 그러나 함수를 다시 실행하면 Dataframe이 반환됩니다. 세 번 실행 해보면 오류 메시지가 다시 나타납니다. 이것은 명령을 실행할 때마다 무기한 진행됩니다.
누구에게 어떤 문제가 있습니까?