MySQL 定时备份数据库

要在MySQL中定时备份数据库,可以使用cron job或者MySQL自带的事件调度器来实现。

使用cron job:

  1. 编写一个Shell脚本来备份数据库,例如backup.sh:
#!/bin/bash
1. 备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > backup.sql

2. 备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > backup.sql

3. 备份全部数据库的数据 (加 -t 参数)
mysqldump -uroot -p123456 -A -t > backup.sql

4. 备份单个数据库的数据和结构 (数据库名 backup)
mysqldump -uroot-p123456 backup > backup.sql

5. 备份单个数据库的结构
mysqldump -uroot -p123456 backup -d > backup.sql

6. 备份单个数据库的数据
mysqldump -uroot -p123456 backup -t > backup.sql

7. 备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 backup t1 t2 > backup.sql

8. 一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > backup.sq
  1. 使用crontab命令编辑定时任务表:
crontab -e
  1. 在打开的文件中添加一行来定时执行备份任务,例如每天凌晨3点:
0 3 * * * /path/to/backup.sh
  1. 保存文件并退出。

使用MySQL事件调度器:

  1. 创建一个存储过程来备份数据库,例如:
DELIMITER $$
CREATE PROCEDURE backup_database()
BEGIN
    SET @backup_sql := CONCAT('mysqldump -u username -p password mydatabase > ', DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'), '_backup.sql');
    PREPARE stmt FROM @backup_sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;
  1. 创建一个事件调度器来定时执行备份任务,例如每天凌晨3点:
CREATE EVENT backup_event
    ON SCHEDULE
      EVERY 1 DAY
      STARTS CURRENT_TIMESTAMP + INTERVAL 3 HOUR
    DO
      CALL backup_database();
  1. 保存并执行以上代码,就会创建定时备份的事件调度器。

无论是使用cron job还是MySQL事件调度器,都可以根据需要来定制备份频率和具体的备份脚本。请根据自己的实际情况进行相应的修改和调整。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值