python 通过ssh连接 华为云数据库RDS

直接上代码

	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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值