Saat Anda menjalankan mysql
perintah, Anda melakukan ini di shell SSH. Artinya, Anda terhubung ke server yang berjalan pada mesin jarak jauh melalui localhost
koneksi. Server jarak jauh itu tampaknya tidak diatur untuk mengizinkan koneksi jarak jauh ke sana, hanya koneksi dari mesin itu sendiri.
Anda harus menghubungkan skrip python ke server MySQL dengan cara yang sama seperti Anda, melalui SSH. Anda dapat membuka terowongan SSH ke port 3306 di server jauh.
Modul yang ingin saya gunakan untuk tujuan ini adalah: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()