对python 通过ssh访问数据库的实例详解


Posted in Python onFebruary 19, 2019

通常,为了安全性,数据库只允许通过ssh来访问。例如:mysql数据库放在服务器A上,只允许数据库B来访问,这时,我们需要用机器C去访问数据库,就需要用C通过ssh连接B,再访问A。

通过pymysql连接mysql:

import pymysql
from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
  (sshServerB_ip, sshServerB_port), # B机器的配置
  ssh_password=sshServerB_pwd,
  ssh_username=sshServerB_usr,
  remote_bind_address=(databaseA_ip, databaseA_port)) as server: # A机器的配置

 db_connect = pymysql.connect(host='127.0.0.1', # 此处必须是是127.0.0.1
         port=server.local_bind_port,
         user=databaseA_usr,
         passwd=databaseA_pwd,
         db=databaseA_db)

 cur = db_connect.cursor()
 cur.execute('call storedProcedure')
 db_connect.commit()

以下是自己进行事务管理,并使用peewee框架:

from peewee import *
from playhouse.db_url import connect
from sshtunnel import SSHTunnelForwarder

server = SSHTunnelForwarder(
  (sshServerB_ip, sshServerB_port), # B机器的配置
  ssh_password=sshServerB_pwd,
  ssh_username=sshServerB_usr,
  remote_bind_address=(databaseA_ip, databaseA_port)) # A机器的配置
server.start()
destination_lib = connect('mysql://%s:%s@127.0.0.1:%d/%s' % (databaseA_usr, databaseA_pwd, server.local_bind_port, databaseA_db))
'''
your code to operate the databaseA
'''
server.close()

以上这篇对python 通过ssh访问数据库的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现list反转实例汇总
Nov 11 Python
Python 正则表达式(转义问题)
Dec 15 Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 Python
python获取本机外网ip的方法
Apr 15 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
Pandas的数据过滤实现
Jan 15 Python
python中K-means算法基础知识点
Jan 25 Python
python将图片转为矢量图的方法步骤
Mar 30 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 #Python
深入理解Django-Signals信号量
Feb 19 #Python
python利用跳板机ssh远程连接redis的方法
Feb 19 #Python
Python获取Redis所有Key以及内容的方法
Feb 19 #Python
Python元组常见操作示例
Feb 19 #Python
python redis 删除key脚本的实例
Feb 19 #Python
Python列表切片操作实例总结
Feb 19 #Python
You might like
php在字符串中查找另一个字符串
2008/11/19 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python pandas生成时间列表
2019/06/29 Python
python增加图像对比度的方法
2019/07/12 Python
python3实现高效的端口扫描
2019/08/31 Python
python对Excel的读取的示例代码
2020/02/14 Python
python 模拟登陆github的示例
2020/12/04 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
实习证明格式范文
2014/10/14 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
经典祝酒词大全
2015/08/12 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript