我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python如何通过跳板机连接MySQL

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python如何通过跳板机连接MySQL

python通过跳板机连接MySQL

生产环境中,为了安全起见,大多数的数据库是无法在本地直接访问的,需要先连接跳板机,然后通过跳板机访问。

这么做虽然在安全方面稍有保证,但是对于写代码的人来说,增加了一定的难度,以下是我个人对python连接跳板机连接mysql的一些总结。

首先,需要下载sshtunnel包,使用pip即可,其次是连接MySQL的包,这个根据自己的喜好来就好,我个人常用的是mysql.connector和pymysql,这里就使用mysql.connector。

代码如下:

import mysql.connector
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(
    (host_jump, int(port_jump)), # 跳板机的配置
    ssh_pkey=ssh_pk_jump,
    ssh_username=user_name_jump,
    remote_bind_address=(host_mysql, int(port_mysql))) # 数据库服务器的配置
server.start()
conn = mysql.connector.connect(host='127.0.0.1', port=server.local_bind_port, user=user_name_mysql, password=password_mysql, database=database)
# do something...
conn.close()
server.close()

说明:

1:因为我的跳板机是通过密钥连接的,所以需要ssh_pkey参数,值是密钥的路径,如果需要通过密码连接,将该参数换成ssh_password即可;

2:SSHTunnelForwarder方法返回的server对象必须调用start()方法后才可以正常使用;

3:在连接MySQL时,connect()方法的参数中的host必须为127.0.0.1;

4:由于端口必须为数字类型,所以使用int()方法转换;

5:使用结束后,为了安全起见,调用server的close()方法关闭连接,当然也可以使用with语句,如下:

with SSHTunnelForwarder(
    (host_jump, int(port_jump)), # 跳板机的配置
    ssh_pkey=ssh_pk_jump,
    ssh_username=user_name_jump,
    remote_bind_address=(host_mysql, int(port_mysql))) as server: # MySQL服务器的配置
  conn = pymysql.connect(host='127.0.0.1', port=server.local_bind_port, user=user_name_mysql, password=password, database=database)

此时不仅可以省略close()方法,也可以省略start()方法。

MySql跳板机 python连接方法及配置

import pymysql
from sshtunnel import SSHTunnelForwarder
#可能需要安装上面的包
 
#跳板机
host_jump=跳板机ip
port_jump=跳板机port
user_name_jump=跳板机用户名
ssh_password=跳板机密码
 
#数据库
host_mysql=数据库ip
port_mysql=数据库port
user_name_mysql=数据库用户名
password_mysql=数据库密码
database=数据库名称
local_bind_port=22 #本地端口自行定义
 
server = SSHTunnelForwarder(
    (host_jump, int(port_jump)),  # 跳板机的配置
    ssh_password=ssh_password,
    ssh_username=user_name_jump,
    remote_bind_address=(host_mysql, int(port_mysql)))  # 数据库服务器的配置
 
server.start() #启动server
 
connection = pymysql.connect(host='127.0.0.1', port=server.local_bind_port, 
			user=user_name_mysql, password=password_mysql, database=database,
			charset="utf8", cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
cursor.execute('select * from test_db where id=1')
data=cursor.fetchall()
 
#注意关闭
conn.close()
server.close()
 
print(data)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python如何通过跳板机连接MySQL

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python如何通过跳板机连接MySQL

目录python通过跳板机连接mysqlMySql跳板机 python连接方法及配置总结python通过跳板机连接MySQL生产环境中,为了安全起见,大多数的数据库是无法在本地直接访问的,需要先连接跳板机,然后通过跳板机访问。这么做虽然
2022-12-13

linux通过跳板机连接远程服务器并进行文件传输的方法

最近在linux主机上部署环境时,遇到了很多问题,第一个就是通过跳板机远程连接服务器传输文件的问题。 看了很多网上的解决办法,大部分就是说用SecureCRT软件的Alt+P命令,然后通过SFTP进行传输,编程客
2022-06-04

MySQL如何通过Navicat实现远程连接

直接使用Navicat通过IP连接会报各种错误,例如:Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL server。 经过个人验证,得到解决方法
2022-05-18

Python通过跳板机访问数据库的方法是什么

本篇内容主要讲解“Python通过跳板机访问数据库的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python通过跳板机访问数据库的方法是什么”吧!什么是跳板机?跳板机(Jump Se
2023-06-25

如何强制 MySQL 通过 TCP 而不是 Unix 套接字连接?

使用 MySQL 客户端库的 mysql 和 mysqldump 等程序支持通过多种传输协议(如 TCP/IP、Unix 套接字)连接 MySQL 到服务器文件、命名管道、共享内存等。对于给定的连接,如果未指定传输协议,则将其确定为单独的任
2023-10-22

win7如何跳过自动修复直接开机

要跳过自动修复直接开机,您可以尝试以下方法:1. 在开机过程中按下F8键,进入高级启动选项界面。2. 在高级启动选项界面中,选择"禁用自动启动修复"选项,并按下回车键。3. 系统会继续启动,跳过自动修复过程,直接进入桌面。请注意,这种方法仅
2023-09-09

实战指南:使用XShell通过堡垒机(跳板)连接服务器、数据库(完整版详解教程)

最近公司配置了堡垒机,因此在此处记录一下堡垒机连接服务器的方法。 文章目录 1:连接堡垒机2:通过堡垒机连接数据库3:通过堡垒机连接服务器 1:连接堡垒机 打开XShell 填写堡垒机的信息 填写登录用户、密码 如果你是密码
2023-08-19

如何通过Java连接SQL Server数据库

今天小编给大家分享一下如何通过Java连接SQL Server数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.明确J
2023-07-05

VISTA下如何通过红外线连接外接设备

这篇文章主要讲解了“VISTA下如何通过红外线连接外接设备”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VISTA下如何通过红外线连接外接设备”吧!  使用红外线连接发送或接收文件可以使用红
2023-06-13

如何解决MySQL报错:无法通过套接字连接到本地MySQL服务器

要解决MySQL报错:“无法通过套接字连接到本地MySQL服务器”,可以尝试以下步骤:1. 检查MySQL服务器是否正在运行。可以使用以下命令来检查MySQL服务器的状态:```systemctl status mysql```2. 如果M
2023-10-10

如何通过VM连接阿里云服务器

在进行云服务器管理时,我们可能需要通过虚拟机(VM)连接阿里云服务器。本文将详细介绍如何通过VM连接阿里云服务器。一、准备工作阿里云账号:首先,你需要在阿里云官网上注册一个账号,并创建一个云服务器。虚拟机:你需要在阿里云上创建一个虚拟机,以便在本地运行应用程序。二、连接步骤登录阿里云控制台:在浏览器中输入阿里云的
如何通过VM连接阿里云服务器
2023-11-23

Mybatis如何通过Mapper代理连接数据库

这篇文章主要为大家展示了“Mybatis如何通过Mapper代理连接数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mybatis如何通过Mapper代理连接数据库”这篇文章吧。1.在数据库
2023-06-25

Linux系统中如何通过命令连接wifi

Linux系统中如何通过命令连接wifi,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在我们安装Linux系统之后第一件事就是联网了,大多数人选择通过有线进行联网,本片文章和大
2023-06-28

编程热搜

目录