很早的时候(2010年)写过一个java版本的备份mysql数据库,这次来个python的。
备份完成的效果如下,备份的目录会自动创建,需要备份的db是自动获取所有的(如果只备份部分数据库自行修改一下,参考之前的java版本):
image.png
上代码:
# -*- coding: utf-8 -*-import os,time,pymysql user='user'pwd='pwd'def getDatabaseNames(): conn = pymysql.connect("localhost", user, pwd, use_unicode=True, charset="utf8") cur = conn.cursor() cur.execute('show databases;') dbs = cur.fetchall() cur.close() conn.close() return dbs#path trim一下然后创建def mkdir(path): path = path.strip() path = path.rstrip("\\") isExists = os.path.exists(path) if not isExists: os.makedirs(path) return True else: return Falseif __name__ == '__main__': timestr = time.strftime("%Y%m%d%H%M%S",time.localtime(time.time())) folder = "mysql_data_bak/"+timestr mkdir(folder) dbs = getDatabaseNames() print(dbs) for db in dbs: try: dbname = db[0] #排除自带的db if dbname=="mysql" or dbname=="performance_schema" or dbname=="information_schema" or dbname=="sys": continue #导出db cmd = "mysqldump -u%s -p%s %s > %s/%s.sql" % (user, pwd, dbname, folder, dbname) print(cmd) os.system(cmd) except Exception as e: print(e)
作者:胡晓的简书
链接:https://www.jianshu.com/p/b256cb503703
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦