mysql database backup use python scripts

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

mysql database backup use python scripts

 
  1. #!/usr/bin/env python 
  2. #coding=utf8 
  3. #author : itnihao 
  4. #mail   : itnihao@qq.com 
  5. #source : http://code.taobao.org/p/python2/src/trunk/ 
  6. #version:1.0 
  7.  
  8. ''' 
  9. 功能:mysql备份。用mysqldump对mysql中各库进行备份 
  10. 1.user,pass,host,path,del参数为变量 
  11. 2.默认备份删除周期为5天,备份以天为单位 
  12. 3.默认备份路径为/mysql_backup,如果不存在会建立此目录 
  13. 4.用法为加执行权限,定时任务运行 
  14. ''' 
  15. import os,subprocess,datetime 
  16.  
  17. '''设置变量''' 
  18. MYSQL_USER = 'root' 
  19. MYSQL_PASS = 'pass' 
  20. MYSQL_HOST = 'localhost' 
  21. DEL_DAYS   = 5 
  22. BACK_PATH  = '/mysql_backup' 
  23.  
  24. '''''时间设置''' 
  25. CUR_TIME = datetime.date.today() 
  26. AGO_TIME = datetime.timedelta(days=DEL_DAYS) 
  27. DEL_TIME = CUR_TIME - AGO_TIME 
  28. DATABASE = '' 
  29.  
  30.  
  31. '''备份函数''' 
  32. def mysqldump(): 
  33.     if os.path.isdir(BACK_PATH): 
  34.         os.chdir(BACK_PATH) 
  35.     else
  36.         os.mkdir(BACK_PATH) 
  37.         os.chdir(BACK_PATH) 
  38.     database_cmd=subprocess.Popen("mysql -u%s -p%s -h%s -e 'show databases'|grep -v Database|grep -v information" %(MYSQL_USER,MYSQL_PASS,MYSQL_HOST),stdout=subprocess.PIPE,shell=True
  39.     DATABASE_NAME=database_cmd.stdout.read().split() 
  40.     for DATABASE  in DATABASE_NAME: 
  41.         MYSQLDUMP_FILENAME="/mysql_backup/%s%s.sql"%(CUR_TIME,DATABASE) 
  42.         subprocess.call("mysqldump -u%s -p%s -h%s %s>%s" %(MYSQL_USER,MYSQL_PASS,MYSQL_HOST,DATABASE,MYSQLDUMP_FILENAME),shell=True
  43.         if os.path.isfile('${DEL_TIME}${DATABASE}.sql'): 
  44.             subprocess.call("rm ${DEL_TIME}${DATABASE}.sql",shell=True
  45.  
  46. mysqldump() 

本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1174898,如需转载请自行联系原作者

相关文章
|
15天前
|
SQL 关系型数据库 MySQL
Python之MySQL操作及Paramiko模块操作
Python之MySQL操作及Paramiko模块操作
|
15天前
|
SQL 关系型数据库 MySQL
干货!python与MySQL数据库的交互实战
干货!python与MySQL数据库的交互实战
|
15天前
|
关系型数据库 MySQL 大数据
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
|
1月前
|
SQL 关系型数据库 MySQL
Python系列:教你使用PyMySQL操作MySQL数据库
Python系列:教你使用PyMySQL操作MySQL数据库
32 8
|
29天前
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
30 1
|
1月前
|
关系型数据库 MySQL 数据库
Python操作Mysql,这一篇就够了
Python操作Mysql,这一篇就够了
25 1
|
1月前
|
存储 SQL 关系型数据库
在 MySQL 中使用 Drop Database
【8月更文挑战第11天】
92 0
在 MySQL 中使用 Drop Database
|
22天前
|
SQL 关系型数据库 MySQL
"Python与MySQL的浪漫邂逅:一键掌握增删改查,开启你的数据库编程之旅!"
【8月更文挑战第21天】Python因其简洁的语法和强大的库支持,成为连接数据库的首选工具。本文介绍如何使用Python连接MySQL数据库并执行基本操作。首先需安装`mysql-connector-python`库。通过配置连接信息建立数据库连接后,可利用`cursor.execute()`执行SQL语句进行数据的增删改查,并通过`commit()`提交更改。查询时使用`fetchall()`或`fetchone()`获取结果。记得处理异常及关闭连接以释放资源。掌握这些基础,有助于高效进行数据库编程。
27 0
|
4月前
|
SQL Oracle 关系型数据库
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
55 2
|
4月前
|
Oracle 关系型数据库
19c 开启Oracle Database Vault
19c 开启Oracle Database Vault
118 1