出于安全考虑,数据库服务器只允许堡垒机通过ssh访问,这对日常的使用带来了麻烦。昨天的工作中,就遇到了这样的问题,mysql数据库放在了服务器A上,只允许服务器B来访问,而我在机器C上,可以通过ssh连接服务器B。为了解决在机器C上连接mysql这个问题,用百度搜索解决方法,遗憾的是,找不到什么靠谱的,最后,还是×××用了google,终于找到了一种简单可靠的方法。把google赶出中国,让中国的IT技术退步了10分钟。

    import MySQLdbfrom sshtunnel import SSHTunnelForwarderwith SSHTunnelForwarder(('sshhost.domain.com', 22),    #B机器的配置ssh_password="sshpasswd",ssh_username="sshusername",remote_bind_address=('mysqlhost.domain.com', 3306)) as server:  #A机器的配置,数据库IP,端口conn = MySQLdb.connect(host='127.0.0.1',              # 此处必须是是127.0.0.1port=server.local_bind_port,user='user',                               # 数据库用户passwd='password',                 # 数据库密码db='dbname')                           # 库名

转载于:https://blog.51cto.com/moerjinrong/2149354

python 使用mysqldb模块通过ssh隧道连接mysql相关推荐

  1. python mysql ssh隧道_在python中使用ssh隧道连接mysql

    通常为了保证数据库安全,不会允许直接连接数据库,而是需要通过SSH隧道去连接服务器背后的数据库: 今天我在用Python连接远程的MySQL时,直连遇到了无法连接的情况,使用了SSH隧道之后解决了问题 ...

  2. centos mysql ssh连接,使用SSH隧道连接MYSQL

    1. 概述 本文介绍了如何使用SSH隧道连接MySQL,网络隔离导致无法直接访问数据库的问题. 第2节对需求进行了简单的描述:第3节介绍了linux环境下,如何通过SSH隧道连接MySQL:第4节介绍 ...

  3. 通过navicat工具利用SSH隧道连接MySQL数据库

    前言:因为那台服务器信息比较重要,希望通信被加密,所以不适合直接将3306端口开放到公网.被加密了,而实际情况,可能通过公网访问数据库的需求,可考虑利用SSH隧道连接远程MySQL数据库. 如下连接不 ...

  4. ssh隧道 mysql,如何通过SSH隧道连接MySQL

    Hello Guys, I''m trying to have an desktop app that will connect my website MySQL database. I have d ...

  5. Navicat使用SSH隧道连接MySQL

    1.正常打开连接窗口,选择SSH: 2.填写完SSH对应参数,重新选择常规: SSH参数: 主机 => 服务器IP 端口 => 22 [一般22,SSH监听端口] 用户名 => 登录 ...

  6. 通过ssh隧道连接mysql

    ssh -fN -L3307:127.0.0.1:3306 -p54231 username@127.0.0.1 L3307 :本地服务器映射端口 127.0.0.1:3306 :mysql 服务器i ...

  7. 利用SSH隧道连接远程MySQL数据库

    文章目录 一.前言 二.MySQL服务端 三.MySQL客户端 1.通过navicat工具利用SSH隧道连接MySQL数据库 2.手动建立端口转发规则(以linux为例) 3.使用jsch进行端口转发 ...

  8. mysql ssh隧道连接内网mysql

    通过SSH隧道连接MySQL数据库 一.背景 问题所在:MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,数据安全如果只靠MySQL应用层面显然是不够的,虽然说MySQL实现的 ...

  9. python中mysqldb模块_python中MySQLdb模块用法实例

    本文实例讲述了python中MySQLdb模块用法.分享给大家供大家参考.具体用法分析如下: MySQLdb其实有点像php或asp中连接数据库的一个模式了,只是MySQLdb是针对mysql连接了接 ...

最新文章

  1. c语言选择题写小写字母表,C语言选择题(最全版).doc
  2. eclipse java 运行快捷键_java – 可以使用Eclipse中的键盘快捷方式启动/停止Tomcat吗?...
  3. 程序员如何用Python了解女朋友的情绪变化?
  4. 双向链表简单实现及图示
  5. 怎么开发一个npm包
  6. 腾讯副总裁姚星:腾讯AI Lab将致力打造通往AGI之路
  7. BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)
  8. 延迟关机_苹果电脑到底需不需要关机?关机和休眠你选择哪个
  9. 【Linux学习篇】This virtual machine is configured for 64-bit guest operating systems.……
  10. 微服务 前台调用后台的慢的原因_20年IT农民工分享SpringCloud微服务架构实战文档...
  11. vSAN ReadyNode™中可以(也不能)更改的内容
  12. 山山的数学(简单版)
  13. Java网络编程学习汇总
  14. Ubuntu的HBase2.2.2安装
  15. 安卓刷机及刷机包制作教程
  16. 工作三年,回顾一下工作历程
  17. 车马邮件都慢,一生只够爱一个人
  18. Kubernetes 节点调度原理及调度策略
  19. python好学吗一般要学多久-Python好学吗?精通Python需要多长时间?
  20. [02]Hello World!

热门文章

  1. (转)RemoteView 设置控件属性
  2. php 算法 数字比较,数据两两比较的高效算法?
  3. python实现2048游戏_python实现一个简单的2048游戏
  4. flash 林度_flash动画的视频应用
  5. Qt学习(四):qt读写文件
  6. MFC子窗口和父窗口(SetParent,SetOwner)
  7. VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上
  8. Windows API的时间结构体、时间转换及时间获取
  9. 如何完美的将对话框设置成无边框无标题栏样式?
  10. 吴恩达深度学习笔记6-Course2-Week2【优化算法】