下面是“python定时按日期备份MySQL数据并压缩”完整攻略。
一、安装所需库
1.1 安装pymysql库
pip install pymysql
1.2 安装schedule库
pip install schedule
二、编写备份脚本
2.1 连接MySQL数据库
import pymysql
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test')
cur = conn.cursor()
2.2 备份并压缩MySQL数据库
import os
import time
import zipfile
def backup():
current_time = time.strftime('%Y%m%d')
file_name = 'backup-' + current_time + '.sql'
zip_name = 'backup-' + current_time + '.zip'
dumpcmd = 'mysqldump -u root -p123456 test > ' + file_name # 备份命令
os.system(dumpcmd)
with zipfile.ZipFile(zip_name, 'w') as f:
f.write(file_name)
os.remove(file_name)
2.3 定时执行任务
import schedule
schedule.every(1).day.at("22:00").do(backup) # 每天晚上10点备份一次
while True:
schedule.run_pending()
time.sleep(1)
三、脚本说明
此脚本是通过Python的pymysql库连接到MySQL数据库,然后通过mysqldump命令来备份数据库,并压缩后保存在本地。同时,使用schedule库来定时执行任务。
在执行备份的过程中,可以修改dumpcmd语句,指定需要备份的表格。例如:dumpcmd = 'mysqldump -u root -p123456 test table1 table2 > ' + file_name
四、示例说明
示例1:备份test数据库中的所有表格
import os
import time
import zipfile
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test')
cur = conn.cursor()
def backup():
current_time = time.strftime('%Y%m%d')
file_name = 'backup-' + current_time + '.sql'
zip_name = 'backup-' + current_time + '.zip'
dumpcmd = 'mysqldump -u root -p123456 test > ' + file_name # 备份命令
os.system(dumpcmd)
with zipfile.ZipFile(zip_name, 'w') as f:
f.write(file_name)
os.remove(file_name)
backup()
示例2:备份test数据库中的指定表格
import os
import time
import zipfile
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test')
cur = conn.cursor()
def backup():
current_time = time.strftime('%Y%m%d')
file_name = 'backup-' + current_time + '.sql'
zip_name = 'backup-' + current_time + '.zip'
dumpcmd = 'mysqldump -u root -p123456 test table1 > ' + file_name # 备份命令
os.system(dumpcmd)
with zipfile.ZipFile(zip_name, 'w') as f:
f.write(file_name)
os.remove(file_name)
backup()
以上就是“python定时按日期备份MySQL数据并压缩”的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python定时按日期备份MySQL数据并压缩 - Python技术站