Khi bạn chạy mysql
lệnh, bạn đang thực hiện việc này trong một trình bao SSH. Đó là bạn đang kết nối với máy chủ chạy trên máy từ xa thông qua localhost
sự liên quan. Máy chủ từ xa đó dường như không được thiết lập để cho phép các kết nối từ xa với nó, chỉ có các kết nối từ chính máy.
Bạn sẽ cần phải có tập lệnh python của mình kết nối với máy chủ MySQL giống như cách bạn đang làm, thông qua SSH. Bạn có thể mở đường hầm SSH tới cổng 3306 trên máy chủ từ xa.
Mô-đun tôi muốn sử dụng cho mục đích này là: 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()