När du kör mysql
kommandot gör du detta i ett SSH-skal. Det vill säga att du ansluter till servern som körs på fjärrdatorn via en localhost
förbindelse. Den fjärrservern verkar inte vara inställd för att tillåta fjärranslutningar till den, bara anslutningar från själva maskinen.
Du måste få ditt python-skript att ansluta till MySQL-servern på samma sätt som du gör, via SSH. Du kan öppna en SSH-tunnel till port 3306 på fjärrservern.
Modulen jag gillar att använda för detta ändamål är: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()