A handy python backup for MySQL scripts

Source: Internet
Author: User
Tags python script

MySQL as a popular open-source database management system is widely used in various scenarios, Alibaba Cloud provides high available ApsaraDB RDS for MySQL with enhanced MySQL service is now supporting businesses fighting Coronavirus COVID-19.



A few days ago to write a MySQL script in Python, Google read the next foreigner wrote, write very good, the original address in http://tecadmin.net/python-script-for-mysql-database-backup/#, So I gave it to copy.


1 #!/usr/bin/python
 2 ###########################################################
 3 #
 4 # This python script is used for mysql database backup
 5 # using mysqldump utility.
 6 #
 7 # Written by : Rahul Kumar
 8 # Website: http://tecadmin.net
 9 # Created date: Dec 03, 2013
10 # Last modified: Dec 03, 2013
11 # Tested with : Python 2.6.6
12 # Script Revision: 1.1
13 #
14 ##########################################################
15 
16 # Import required python libraries
17 import os
18 import time
19 import datetime
20 
21 # MySQL database details to which backup to be done. Make sure below user having enough privileges to take databases backup.
22 # To take multiple databases backup, create any file like /backup/dbnames.txt and put databses names one on each line and assignd to DB_NAME variable.
23 
24 DB_HOST = ‘localhost‘
25 DB_USER = ‘root‘
26 DB_USER_PASSWORD = ‘_root_user_password_‘
27 #DB_NAME = ‘/backup/dbnames.txt‘
28 DB_NAME = ‘db_name‘
29 BACKUP_PATH = ‘/backup/dbbackup/‘
30 
31 # Getting current datetime to create seprate backup folder like "12012013-071334".
32 DATETIME = time.strftime(‘%m%d%Y-%H%M%S‘)
33 
34 TODAYBACKUPPATH = BACKUP_PATH + DATETIME
35 
36 # Checking if backup folder already exists or not. If not exists will create it.
37 print "creating backup folder"
38 if not os.path.exists(TODAYBACKUPPATH):
39     os.makedirs(TODAYBACKUPPATH)
40 
41 # Code for checking if you want to take single database backup or assinged multiple backups in DB_NAME.
42 print "checking for databases names file."
43 if os.path.exists(DB_NAME):
44     file1 = open(DB_NAME)
45     multi = 1
46     print "Databases file found..."
47     print "Starting backup of all dbs listed in file " + DB_NAME
48 else:
49     print "Databases file not found..."
50     print "Starting backup of database " + DB_NAME
51     multi = 0
52 
53 # Starting actual database backup process.
54 if multi:
55    in_file = open(DB_NAME,"r")
56    flength = len(in_file.readlines())
57    in_file.close()
58    p = 1
59    dbfile = open(DB_NAME,"r")
60 
61    while p <= flength:
62        db = dbfile.readline()   # reading database name from file
63        db = db[:-1]         # deletes extra line
64        dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
65        os.system(dumpcmd)
66        p = p + 1
67    dbfile.close()
68 else:
69    db = DB_NAME
70    dumpcmd = "mysqldump -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + TODAYBACKUPPATH + "/" + db + ".sql"
71    os.system(dumpcmd)
72 
73 print "Backup script completed"
74 print "Your backups has been created in ‘" + TODAYBACKUPPATH + "‘ directory"


# chmod +x dbbackup.py






# python dbbackup.py

Do timed task execution:



0 2 * * */usr/bin/python dbbackup.py







A handy python backup for MySQL scripts

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.