对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中set与frozenset方法和区别详解
May 23 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
python 实现登录网页的操作方法
May 11 Python
django自带的server 让外网主机访问方法
May 14 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
Python实现自动访问网页的例子
Feb 21 Python
Python turtle库的画笔控制说明
Jun 28 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
matplotlib部件之套索Lasso的使用
Feb 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
javascript事件模型代码
2007/07/01 Javascript
js option删除代码集合
2008/11/12 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
Python的lambda匿名函数的简单介绍
2013/04/25 Python
Python 性能优化技巧总结
2016/11/01 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python3 拼接字符串的7种方法
2018/09/12 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
高中学生干部学习的自我评价
2014/02/21 职场文书
保密普查工作实施方案
2014/02/25 职场文书
消防安全宣传口号
2014/06/10 职场文书
重阳节慰问信
2015/02/15 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书