直接上代码

	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连接
	ssh_param = ssh_address['huawei']
	db_param = my_address['huawei']
	with SSHTunnelForwarder(
	        # ssh 的地址
            (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连接成功')
        
        # 此处host为127.0.0.1 是ssh连接完之后会映射到本地127.0.0.1的地址
        conn = pymysql.connect(host='127.0.0.1',
                                # ssh server 映射的端口
                               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
Logo

GitCode AI社区是一款由 GitCode 团队打造的智能助手,AI大模型社区、提供国内外头部大模型及数据集服务。

更多推荐