Wenn Sie mysql
ausführen Befehl tun Sie dies in einer SSH-Shell. Das heißt, Sie verbinden sich über einen localhost
mit dem Server, der auf dem Remote-Computer läuft Verbindung. Dieser Remote-Server scheint nicht eingerichtet zu sein, um Remote-Verbindungen zu ihm zuzulassen, sondern nur Verbindungen von der Maschine selbst.
Sie müssen Ihr Python-Skript auf die gleiche Weise wie Sie über SSH mit dem MySQL-Server verbinden. Sie können einen SSH-Tunnel zu Port 3306 auf dem Remote-Server öffnen.
Das Modul, das ich zu diesem Zweck gerne verwende, ist:https://pypi.python.org/pypi/ sshtunnel
from sshtunnel import SSHTunnelForwarder
import pymysql
server = SSHTunnelForwarder(
'XXX.XXX.XXX.XXX',
ssh_username='root',
ssh_password='my_server_password',
remote_bind_address=('127.0.0.1', 3306)
)
server.start()
cnx = pymysql.connect(
host='127.0.0.1',
port=server.local_bind_port,
user='root',
password='my_database_password',
db='my_database'
)
# Make sure to call server.stop() when you want to disconnect
# after calling cnx.close()