对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接收多播数据的代码
Mar 01 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
对Python 内建函数和保留字详解
Oct 15 Python
django解决跨域请求的问题
Nov 11 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
python and or用法详解
Jun 26 Python
python代码编写计算器小程序
Mar 30 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
Django密码存储策略分析
Jan 09 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python正则表达式学习小例子
Mar 03 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 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操作数组的一些函数整理介绍
2011/07/17 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
PHP fclose函数用法总结
2019/02/15 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
python定时器使用示例分享
2014/02/16 Python
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
flask框架视图函数用法示例
2018/07/19 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python中return如何写
2020/06/18 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
娱乐地球:Entertainment Earth
2020/01/08 全球购物
便利店促销方案
2014/02/20 职场文书
小学教师自我评价
2015/03/04 职场文书
埃及王子观后感
2015/06/16 职场文书
大学副班长竞选稿
2015/11/21 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python