Når du kører mysql
kommando, gør du dette i en SSH-skal. Det vil sige, at du opretter forbindelse til serveren, der kører på den eksterne maskine via en localhost
forbindelse. Den eksterne server ser ikke ud til at være konfigureret til at tillade fjernforbindelser til den, kun forbindelser fra selve maskinen.
Du skal have dit python-script til at forbinde til MySQL-serveren på samme måde som du er, via SSH. Du kan åbne en SSH-tunnel til port 3306 på fjernserveren.
Modulet, jeg kan lide at bruge til dette formål, er: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()