Когато стартирате mysql
команда, правите това в SSH обвивка. Това означава, че се свързвате със сървъра, работещ на отдалечената машина чрез localhost
Връзка. Този отдалечен сървър изглежда не е настроен да позволява отдалечени връзки към него, а само връзки от самата машина.
Ще трябва вашият python скрипт да се свърже с MySQL сървъра по същия начин, по който сте, чрез SSH. Можете да отворите SSH тунел към порт 3306 на отдалечения сървър.
Модулът, който обичам да използвам за тази цел е: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()