1 | pip3 install sshtunnel |
通过ssh跳板机B连接目标主机A
import pymysql from sshtunnel import SSHTunnelForwarder server = SSHTunnelForwarder( ssh_address_or_host='39.100.88.221', # 跳板机B地址 ssh_port=22, # 跳板机B端口 ssh_username='', # 跳板机B账号 ssh_password='fdfdafdffffff', # 跳板机B密码 # local_bind_address=('127.0.0.1', 22), # 这里必须填127.0.0.1 remote_bind_address=('rm-vy1c36g83gfff2u6m.mysql.rds.aliyuncs.com', 3306) # 目标机器A地址,端口 ) server.start() conn = pymysql.connect( host='127.0.0.1', # 这里必须填127.0.0.1 port=server.local_bind_port , # 本地映射端口 user='business', # 目标机器A账号 password='fdfdsfweweqf', # 目标机器A密码 db='business_db' # 目标机器A要连的库 ) cursor = conn.cursor() cursor.execute('select count(*) from cangku') ret = cursor.fetchall() print(ret) conn.close() server.stop() # 这里要填stop print('stop')
补充:
存在local_bind_address=('127.0.0.1', 22),这行代码的时候,有的环境会出现如下问题
MySQLdb._exceptions.OperationalError: (2013, "Lost connection to server at 'handshake: reading initial communication packet', system error: 0")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!