python 导入数据库的脚本
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,该脚本针对批量导入数据sql文件,data目录存放所要导入的sql文件,list.txt存放要导入的列表信息。脚本内容如下:#!/usr/bin/env python# -*- coding:utf-
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
科技互联网产品
互联网巨头反垄断金融科技
互联网科技金融
北京互联网科技有限公司
金融科技与互联网金融
互联网科技英文
互联网与新科技
奇士达互联网科技
互联网科技视频素材
中国互联网金融科技基金
盛创互联网科技有限公司
互联网公司会议桌创意科技软装饰
卫星互联网科技股票
广州市恰铎互联网科技有限公司
燊美集互联网科技有限公司
烟台灵鸽互联网科技有限公司
互联网金融科技元年
梅州GM互联网络科技有限公司
富国互联网科技002692
工业互联网科技创业
科技股互联网
互联网最新的科技
互联网科技深圳
互联网金融与金融科技
成都狮子座互联网科技
互联网科技公司招聘
福州新华互联网科技学校 知乎
科技赋能视角下互联网保险发展
互联网营销推广黑科技
宁波允成互联网科技有限公司
- 上一篇
SQL Server数据库中的表名称和字段实例分析
这篇文章主要介绍"SQL Server数据库中的表名称和字段实例分析"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SQL Server数据库中的表名称和字段实
- 下一篇
ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808],
问题描述:上午一套RAC实例频繁报警ORA-00600: 内部错误代码, 参数: [qosdDirRead: dircnt mismatch], [809], [808]。经过MOS查询只发现在12.