对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 相关文章推荐
linux 下实现python多版本安装实践
Nov 18 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
Python 多线程抓取图片效率对比
Feb 27 Python
用Python设计一个经典小游戏
May 15 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python中的xlrd模块使用原理解析
May 21 Python
python爬取代理ip的示例
Dec 18 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
Python中可变和不可变对象的深入讲解
Aug 02 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 压缩文件夹的类代码
2009/11/05 PHP
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Linux 修改Python命令的方法示例
2018/12/03 Python
python pygame实现方向键控制小球
2019/05/17 Python
Django model update的多种用法介绍
2020/03/28 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
先进德育工作者事迹材料
2014/01/24 职场文书
讲座主持词
2014/03/20 职场文书
学校欢迎标语
2014/06/18 职场文书
车间核算员岗位职责
2014/07/01 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
保留意见审计报告
2015/06/05 职场文书
保险公司增员口号
2015/12/25 职场文书
靠谱准确的求职信
2019/04/02 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python