直接上代码
import pandas as pd
import pymysql
from sshtunnel import SSHTunnelForwarder
ssh_address = {
"huawei": {
"host": "华为云公网ip", "port": "对外端口", "ssh_username": '华为云账号', "ssh_password": '华为云密码',
}
}
my_address = {
"huawei": {
"host": "华为云内部MySQL,ip", "port": "mysql端口", "user": "mysql账号", "password": 'mysql密码',
"db": "库名", "charset": "utf8"
}
}
ssh_param = ssh_address['huawei']
db_param = my_address['huawei']
with SSHTunnelForwarder(
(ssh_param['host'], ssh_param['port']),
ssh_password=ssh_param['ssh_password'],
ssh_username=ssh_param['ssh_username'],
remote_bind_address=(db_param['host'], db_param['port'])) as server:
print('SSH连接成功')
conn = pymysql.connect(host='127.0.0.1',
port=server.local_bind_port,
user=db_param['user'],
password=db_param['password'],
database=db_param['db'],
charset=db_param['charset'])
print('mysql数据库连接成功')
cursor = conn.cursor()
df = pd.read_sql("show tables;", con=conn)
print(df)
cursor.close()
conn.close()
输出结果
SSH连接成功
mysql数据库连接成功
Tables_in_boxing
0 calendar
1 tb_allall
2 tb_allhook
3 tb_allstraight
4 tb_allswing
5 tb_athleteinjuryrecord
6 tb_boxingdata