对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判断变量是否为Json格式的字符串示例
May 03 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python的Tkinter点击按钮触发事件的例子
Jul 19 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
python3实现名片管理系统(控制台版)
Nov 29 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
python爬取微博评论的实例讲解
Jan 15 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中动态HTML的输出技术
2006/10/09 PHP
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
2019/03/06 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
利用python爬取散文网的文章实例教程
2017/06/18 Python
python 全局变量的import机制介绍
2017/09/07 Python
pyspark 随机森林的实现
2020/04/24 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
医学专业毕业生推荐信
2013/11/14 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
高中体育教学反思
2014/01/29 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
教师暑期培训感言
2014/08/15 职场文书
爱心助学感谢信
2015/01/21 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
九华山导游词
2015/02/03 职场文书
会议简讯范文
2015/07/20 职场文书
mysql联合索引的使用规则
2021/06/23 MySQL
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis