python 导入数据库的脚本
发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,该脚本针对批量导入数据sql文件,data目录存放所要导入的sql文件,list.txt存放要导入的列表信息。脚本内容如下:#!/usr/bin/env python# -*- coding:utf-
千家信息网最后更新 2024年10月01日python 导入数据库的脚本
该脚本针对批量导入数据sql文件,data目录存放所要导入的sql文件,list.txt存放要导入的列表信息。
脚本内容如下:
#!/usr/bin/env python# -*- coding:utf-8 -*-import os, sys, logging, datetime# 日志文件配置if not os.path.isdir('logs'): os.mkdir('logs')logging.basicConfig(level=logging.INFO, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%Y-%m-%d %H:%M', filename='logs/importable.log', filemode='a')console = logging.StreamHandler()console.setLevel(logging.INFO)formatter = logging.Formatter('%(message)s')console.setFormatter(formatter)logging.getLogger('').addHandler(console)logger = logging.getLogger(__name__)# 从本地配置文件中读取主机列表信息def readinfo(confile): info_list = [] if os.path.isfile(confile): with open(confile, 'r+') as f: for line in f.readlines(): if not line.startswith("#"): dict = {} dict['id'] = line.split()[0] dict['host'] = line.split()[1] dict['name'] = line.split()[2] info_list.append(dict) return info_list else: logger.error(u"本地配置文件%s不存在!" % confile) sys.exit(1)def readsqlfile(data): sql_list = [] # 判断本地的sql文件是否存在目录是否存在。 if os.path.isdir(data): for sql_file in os.listdir(data): if sql_file: sql_list.append(os.path.join(data,sql_file)) else: logger.error(u"本地%s目录中没有要导入的sql文件!"%data) else: logger.error(u"%s 不是一个目录。"%data) return sql_list# 循环info_list和sql_list将sql导入每一个服务器def importhost(info_list, sql_list): succ_list = [] fail_list = [] for ser in info_list: for sql_file in sql_list: cmd = "%s/mysql -u%s -p%s -h'%s' %s < %s" % (mysql_path, mysql_user, mysql_passwd, ser['host'], ser['name'] ,sql_file) status = os.system(cmd) if status == 0: msg = "%s -- %s -- %s 导入sql:%s 完毕!"%(ser['id'],ser['host'],ser['name'],sql_file) succ_list.append(msg) logger.info(msg) else: msg = "%s -- %s -- %s 导入sql:%s 失败!" % (ser['id'], ser['host'], ser['name'], sql_file) fail_list.append(msg) logger.error(msg) sys.exit(1) return succ_list,fail_listdef yesorno(confile,data): print "数据库列表如下:" info_list = readinfo(confile) for ser in info_list: print "%s --- %s ---- %s"%(ser['id'],ser['host'],ser['name']) iput = raw_input("你是否要导入sql文件 %s,请输入yes or no:" % (os.listdir(data))) while True: if iput.lower() in ['y','yes']: print "你选择了继续执行程序动作!" break elif iput.lower() in ['n','no']: print "你选择了退出程序动作!" sys.exit(1) else: print "你输入了非法的字符,脚本并未执行导入sql文件的任何动作,程序即将退出。" sys.exit(1)if __name__ == '__main__': # 基本信息配置变量 data = r'data' # 存放本地sql文件的目录 confile = 'list.txt' # 存放服务器列表信息,格式如: id host dbname : 1 192.168.2.20 game_name_cn1 # MySQL变量 mysql_path = '/usr/local/mysql/bin' mysql_user = 'root' mysql_passwd = 'xirexrt,mf' yesorno(confile,data) startime = datetime.datetime.now() sql_list = readsqlfile(data) info_list = readinfo(confile) succ,fail= importhost(info_list,sql_list) logger.info(u'总共执行成功%s条. \r\n 总共执行失败%s条.'%(len(succ), len(fail))) endtime = datetime.datetime.now() logger.info(u"\r\nTotal time: %s ms" % ((endtime - startime).microseconds / 1000))
文件
目录
信息
配置
脚本
动作
程序
数据
变量
服务器
服务
输入
选择
数据库
成功
主机
内容
字符
日志
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
域名备案服务器主体要一致吗
长沙市学软件开发有没有前途
珀太克德互联网科技公司
数据库设计第三方账号登录
欧洲网络安全事件
上海互联网教育科技口碑推荐
服务器之间的传输数据
网络安全63条
mdb数据库修改语句
南京恒策网络技术有限公司官网
电子商务软件开发员竞聘词
大学生网络安全怎样做
数据库入仓
网络安全研究生扩招
不老奇迹网络技术有限公司
泉州报修管理软件开发
厦门云安网络安全
现代软件开发模型
4u服务器什么价格
做软件开发需要什么
ios数据库怎么连接
郑州五月喵软件开发
大学专业计算机网络技术学什么
云服务器运行exe教程
军民融合软件开发
软件开发必知概念
软件开发模拟计划书
洛阳市网络安全防护研发中心
网络安全是会做黑客吗
大学生应该如何维护网络安全
- 上一篇
SQL Server数据库中的表名称和字段实例分析
这篇文章主要介绍"SQL Server数据库中的表名称和字段实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SQL Server数据库中的表名称和字段实
- 下一篇
ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808],
问题描述:上午一套RAC实例频繁报警ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808]。经过MOS查询只发现在12.