对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 BeautifulSoup设置页面编码的方法
Apr 03 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
python制作小说爬虫实录
Aug 14 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
django manage.py扩展自定义命令方法
May 27 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
python Kmeans算法原理深入解析
Aug 23 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python importlib模块重载使用方法详解
Oct 13 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
一些星际专用术语解释
2020/03/04 星际争霸
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
javascript里的条件判断
2007/02/27 Javascript
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Django框架反向解析操作详解
2019/11/28 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
python中shell执行知识点
2020/05/06 Python
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
工程地质勘察专业大学生求职信
2013/10/13 职场文书
运动会通讯稿200字
2014/02/16 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
预备党员自我评价范文
2015/03/04 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis