一、封装带SSH跳板机的MYSQL

二、配置settting

 import pymysql
from sshtunnel import SSHTunnelForwarder class MyDb(object):
#mysql类方法
def __del__(self):
self.cur.close()
self.coon.close()
self.server.close() def __init__(self,host,ssh_username,ssh_password,ip,db,sql_username,password):
try:
server = SSHTunnelForwarder(
ssh_address_or_host=(host, 22),
ssh_username=ssh_username,
ssh_password=ssh_password,
remote_bind_address=(ip, 3306)
)
self.server = server
self.server.daemon_forward_servers = True #不加server关闭不了
self.server.start()
self.connect = pymysql.connect(
host='127.0.0.1',user=sql_username,passwd=password,port=self.server.local_bind_port,charset='utf8',db=db,
autocommit=True,
) except Exception as e:
print('mysql连接失败,错误信息%s'%e) else:
self.cursor = self.connect.cursor(cursor=pymysql.cursors.DictCursor) def ex_sql(self,sql,many=True):
try:
self.cursor.execute(sql)
except Exception as e:
print('sql语句有问题,%s'%sql)
else:
if many:
result = self.cursor.fetchall()
else:
result = self.cursor.fetchone()
return result #哪里用哪里实例化吧
# my_sql = MyDb(**setting.MYSQL_INFO)
#直接在这里实例化的话,用的时候,直接导入就ok了

ssh_mysql

 import os
import nnlog
BASE_PATH = os.path.dirname(
os.path.dirname(os.path.abspath(__file__))
) # MAIL_HOST='smtp.qq.com'
MAIL_HOST='smtp.exmail.qq.com'
MAIL_USER='xxxx.com'
MAIL_PASSWRD='xxxxx' TO = ['xxxx.com'
] LEVEL = 'debug' #日志级别 LOG_PATH = os.path.join(BASE_PATH,'logs')
CASE_PATH = os.path.join(BASE_PATH,'cases')
YAML_PATH = os.path.join(BASE_PATH,'case_data')
CASE_TEMPLATE = os.path.join(BASE_PATH,'conf','base.txt') #用例模板的路径
REPORT_PATH = os.path.join(BASE_PATH,'report')
DATA_PATH = os.path.join(BASE_PATH,'data') #存放测试用到数据的目录
BASE_URL = 'https://xxx.xxx.xxx.xx' #线上环境
#BASE_URL = 'http://xxx.xxx.xxx.xx' #开发环境 LOG_NAME='xxx.log' #日志的文件名 log = nnlog.Logger(os.path.join(LOG_PATH,LOG_NAME),'debug') #定义好日志 #dev环境redis配置文件
REDIS_dev = {
'host': 'xxx.xxx.xxx.xxx',
'ip' : 'xxx.xxx.xxx.xxx',
'ssh_username' : 'xxx',
'ssh_password': 'xxx',
'db':2,
'password' : 'xxx'
} #线上环境redis配置文件
REDIS_online = {
'host': 'xxx.xxx.xxx.xxx',
'ip' : 'xx.xxx.xxx.xxx',
'ssh_username' : 'xxx',
'ssh_password': 'xxxx',
'db':2,
'password' : 'xxx'
} #dev环境mysql配置文件
MYSQL_dev = {
'host': 'xxx.xxx.xxx.xxx',
'ip' : 'xx.xx.xx.xx',
'ssh_username' : 'xxx',
'ssh_password': 'xxx',
'db':'xxx',
'sql_username':'xx',
'password' : 'xxx'
} #线上环境mysql配置文件
MYSQL_online = {
'host': 'xxx.xxx.xxx.xxx',
'ip' : '172.xx.xx.xx',
'ssh_username' : 'xxx',
'ssh_password': 'xxxx',
'db':'xxx',
'sql_username':'xxx',
'password' : 'xxx'
}

setting设置

封装带SSH跳板机的MYSQL的更多相关文章

  1. 封装带SSH跳板机的REDIS

    一.封装ssh的redis 二.setting的配置 三.应用示例 import redis from sshtunnel import SSHTunnelForwarder from conf.se ...

  2. mysql ssh 跳板机(堡垒机???)连接服务器

    跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...

  3. Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库

    前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...

  4. ssh隧道(通过跳板机)连接mysql

    案例: A服务器   B服务器   C服务器mysql 现在mysql服务器C只能通过内网访问,B服务器就能通过内网连接访问到mysql A服务器无法直接连接C服务器mysql,所以要通过跳板机(跳板 ...

  5. Navicat通过跳板机连接MySQL(2层跳转)

      情景描述,公司开发数据库部署在内网,而且这个开发数据库有连接需要有IP验证,就是只能在内网的某个IP才能连接,所以每次连接都会先连接外网能访问的跳板机,在从跳板机上ssh到内网上的A机器,在从A机 ...

  6. 13、ssh跳板机

    13.1.前提条件: 1.跳板机服务器和其它服务器建立了ssh秘钥登录: 2.目前的环境: (1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就 ...

  7. ssh 跳板机部署

    1.首先创建存放日志的文件夹并开放读写权限       mkdir /var/log/jump/       chmod -R 777 /var/log/jump/   2.将原有ssh程序修改为另外 ...

  8. Python通过跳板机链接MySQL的一种方法

  9. 使用pycharm、跳板机连接内网服务器

    使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...

随机推荐

  1. vue报类似警告Computed property "isLoading" was assigned to but it has no setter

    一.原因:一个计算属性,当计算传入的是一个函数,或者传入的是一个对象,而没有设置 setter,也就是 set 属性,当你尝试直接该改变这个这个计算属性的值,都会报这个警告,vuex还会出现通过com ...

  2. linux环境下安装python3的方法(转)

    Linux 安装python3.7.0   我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 ...

  3. boost交叉编译

    运行bootstrap.sh # ./bootstrap.sh 生成b2.bjam和project-config.jam文件 修改project-config.jam using gcc : arm ...

  4. 用window.showModalDialog()打开的页面Request.UrlReferrer为null

    今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...

  5. Delphi 构造和析构

  6. (备忘)Nodepad++常用快捷键

    Ctrl-H 打开Find / Replace 对话框 Ctrl-D 复制当前行 Ctrl-L 删除当前行 Ctrl-T 上下行交换 F3 找下一个 Shift-F3 找上一个 Ctrl-Shift- ...

  7. chrome上一些好用的插件

    1. Super Auto Refresh Plus - 这个插件可以自动刷新网页 2. 屏蔽百度推广 - 这个插件可以屏蔽百度搜索的推广广告

  8. WebRtc的一些基本概念

    GCC:Google Congestion Control,谷歌提出的拥塞控制算法 REMB:Receiver Estimated Maximum Bitrate,  接收端最大接收码率估测,接收端会 ...

  9. 打开myeclipse提示An internal error occurred during: "CheckLicensesAndNotify". com/genuitec/pulse2/client/targetcfg/ui/PulseActivator

    打开myeclipse提示An internal error occurred during: "CheckLicensesAndNotify". com/genuitec/pul ...

  10. OBDSTAR X300 PRO3详细评论

    OBDSTAR 公司的X300 PRO3钥匙主控系统具有SKP900的防盗锁钥匙编程功能,以及新功能,例如,测速计调节,EEPROM / PIC和OBDII.它的风格完全符合工业惯例,例如,它采用双边 ...