封装带SSH跳板机的MYSQL
一、封装带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的更多相关文章
- 封装带SSH跳板机的REDIS
一.封装ssh的redis 二.setting的配置 三.应用示例 import redis from sshtunnel import SSHTunnelForwarder from conf.se ...
- mysql ssh 跳板机(堡垒机???)连接服务器
跳板机(Jump Server),也称堡垒机,是一类可作为跳板批量操作远程设备的网络设备,是系统管理员或运维人员常用的操作平台之一. 正常的登录流程 使用ssh命令登录跳板机: 登录跳板机成功后,在跳 ...
- Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库
前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...
- ssh隧道(通过跳板机)连接mysql
案例: A服务器 B服务器 C服务器mysql 现在mysql服务器C只能通过内网访问,B服务器就能通过内网连接访问到mysql A服务器无法直接连接C服务器mysql,所以要通过跳板机(跳板 ...
- Navicat通过跳板机连接MySQL(2层跳转)
情景描述,公司开发数据库部署在内网,而且这个开发数据库有连接需要有IP验证,就是只能在内网的某个IP才能连接,所以每次连接都会先连接外网能访问的跳板机,在从跳板机上ssh到内网上的A机器,在从A机 ...
- 13、ssh跳板机
13.1.前提条件: 1.跳板机服务器和其它服务器建立了ssh秘钥登录: 2.目前的环境: (1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就 ...
- ssh 跳板机部署
1.首先创建存放日志的文件夹并开放读写权限 mkdir /var/log/jump/ chmod -R 777 /var/log/jump/ 2.将原有ssh程序修改为另外 ...
- Python通过跳板机链接MySQL的一种方法
- 使用pycharm、跳板机连接内网服务器
使用pycharm.跳板机连接内网服务器 接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器. 总体就是实验室服务器仅限内网访 ...
随机推荐
- 说说css hack,说真的,我也是才去了解这个东西
之前在很多地方看到css hack,今天狠下心,看看到底是什么鬼,所有我去百度了,然后看了一篇文章,然后写个小总结. css hack就是通过加一些特定的符号,不同的浏览器可以识别特定符号的样式,以此 ...
- python之atexit模块的使用
python atexit 模块定义了一个 register 函数,用于在 python 解释器中注册一个退出函数,这个函数在解释器正常终止时自动执行,一般用来做一些资源清理的操作. atexit 按 ...
- vue 项目文件流数据格式转blob图片预览展示
为了图片安全性,有时候上传图片后后台不会直接返回图片地址,会返回文件流的数据格式,这种格式需要处理下才能展示在页面上 // 使用axios请求上传接口 axios({ method: 'get', ...
- python 判断两个ip地址是否属于同一子网
python 判断两个ip地址是否属于同一子网 """ 判断两个IP是否属于同一子网, 需要判断网络地址是否相同 网络地址:IP地址的二进制与子网掩码的二进制地址逻辑&q ...
- AJAX配置csrf
// 从COokie取CSRF TOKEN的值 function getCookie(name) { var cookieValue = null; if (document.cookie & ...
- vue-cli3项目中使用CDN
1.html 中引入 echarts html中添加script标签如下: <script src="//cdn.bootcss.com/echarts ...
- kotlin语言boolean
其实大部分语言的boolean都差不多,为了突出基础的重要性这里还是学习一下,光语法来说没啥可学的,看一眼就会了,这里以解决实际问题来实践下boolean,下面以小学.初中.高中的数学填空题做为练习的 ...
- cmake学习笔记之add_library、target_link_libraries和link_directories
cmake是Linux(这里默认是Ubuntu系统)下常使用的编译C++的工具,而使用cmake就需要先在CmakeLists.txt文件中对编译规则进行.这里介绍常用的三种指令add_library ...
- solr schema.xml配置
solr使用_version_来做文档的版本控制和修改时加锁(乐观锁) <field name="_version_" type="long" index ...
- 方程的解——枚举&&水题
题目 链接 给出方程组:$$\displaystyle \left\{\begin{aligned}11x + 13y + 17z = 2471 \\13x + 17y + 11z = 2739\en ...