对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 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python变量作用范围实例分析
Jul 07 Python
python实现杨辉三角思路
Jul 14 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
Python实现通过解析域名获取ip地址的方法分析
May 17 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
Python小白垃圾回收机制入门
Jun 09 Python
Python 实现微信自动回复的方法
Sep 11 Python
浅析python 字典嵌套
Sep 29 Python
Django cookie和session的应用场景及如何使用
Apr 29 Python
python中的getter与setter你了解吗
Mar 24 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中数据的批量导入(csv文件)
2006/10/09 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
PHP培训要多少钱
2017/06/06 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
jQuery使用方法
2017/02/04 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
Vue中计算属性computed的示例解读
2017/07/26 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python中根据字符串调用函数的实现方法
2016/06/12 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
应届毕业生求职信范文
2013/12/18 职场文书
大型晚会策划方案
2014/02/06 职场文书
安全生产月演讲稿
2014/05/09 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
安全生产月宣传标语
2014/10/06 职场文书
员工2014年度工作总结
2014/12/09 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
老人院义工活动感想
2015/08/07 职场文书
Nginx报404错误的详细解决方法
2022/07/23 Servers