对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 获取et和excel的版本号
Apr 09 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python贪心算法实例小结
Apr 22 Python
Django如何自定义分页
Sep 25 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
python属于哪种语言
Aug 16 Python
使用Python通过企业微信应用给企业成员发消息
Apr 18 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程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
js的event详解。
2006/09/06 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
浅谈ECMAScript6新特性之let、const
2017/08/02 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python插入排序算法的实现代码
2013/11/21 Python
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python写的ARP攻击代码实例
2014/06/04 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
Django工程的分层结构详解
2019/07/18 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
大学生自我评价范文分享
2014/02/21 职场文书
党员承诺书怎么写
2014/05/20 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
新年寄语2016
2015/08/17 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python