mysql 定时备份数据 mysql数据库定时备份方法

生产环境中使用mysql数据库,我们如何进行数据备份?
这里我们采用mysqldump来进行数据备份,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重

本文最后更新时间:  2023-03-07 19:52:00

生产环境中使用mysql数据库,我们如何进行数据备份?

这里我们采用mysqldump来进行数据备份,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

创建目录mkdir /root/mysqlcd /root/mysql编写备份脚本vi  startBackup.sh

数据导出脚本如下:

#!/bin/bash# 直接配置帐号密码就把下面注释放开#db_user='root'#db_password=`cat /root/mysql/mysql_password`#mysql安装地址export PATH=/usr/local/mysql/bin:$PATH#数据库名称db_name='***db'#备份地址根据情况指定backup_dir='/root/mysql/data/'current_time=$(date '%Y-%m-%d_%H%M%S')filepath=$backup_dir$current_time'.sql.gz'#此处没有使用 $db_password $db_user, 已经写入到配置文件中echo '开始导出数据库...'#读取数据库连接配置,导出数据并压缩mysqldump --defaults-extra-file=/root/mysql/backup.cnf $db_name | gzip > $filepathecho '导出成功,文件名为: '$filepath

上面backup.cnf配置内容如下:

[mysqldump]max_allowed_packet=1000Mhost=localhostuser=帐号password='*********'[mysql]host=localhostuser=账号password='***********'

编写移除历史备份数据脚本,我们这里保留7天内的备份。(可以根据具体情况调整)

vi removeHistory.sh#/bin/bash# 删除7天前的备份find /root/mysql/data -type f -mtime 7 | xargs rm -f定时直行备份脚本

给脚本赋权限

chmod x startBackup.shchmod x removeHistory.sh

centos命令行中输入 crontab -e编写定时执行脚本,每天凌晨1点进行备份并清除历史数据

0 1 * * * /*****/startBackup.sh0 1 * * * /*****/removeHistory.sh

配置完成后每天就会定时执行备份,备份信息如下:

备份文件

数据恢复

数据压缩备份后,我们可以通过下面的命令来进行数据恢复

#!/bin/bashif [ -z $1 ] || [ ! -f $1 ]then echo "请输入sql压缩文件(*.sql.gz)" exit 1fidb_name='***db'base_dir='/root/mysql/data/'gz_sql_file=`basename $1`file_ext=${gz_sql_file##*.}if [ $file_ext != 'gz' ]then echo '文件格式不正确,请输入 .sql.gz 文件' exit 1fisql_file=${gz_sql_file%.*}echo '解压文件中...'gzip -dc $base_dir$gz_sql_file > $base_dir$sql_fileecho '解压完成.'echo '开始导入数据库...'mysql --defaults-extra-file=/root/mysql/backup.cnf $db_name < $base_dir$sql_fileif [ -f $base_dir$sql_file ]then echo '删除临时文件.' rm -f $base_dir$sql_filefiecho '导入完成.'

怎么定时自动备份mysql数据表

一、对于Windows主机
==============
假想环境:
MySQL
安装位置:C:MySQL
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:D:db_backup
@echo
off
C:MySQLbinmysqladmin
-u
root
–password=123456
shutdown
C:MySQLbinmysqldump
–opt
-u
root
–password=123456
bbs
>
D:db_backupbbs.sql
C:MySQLbinmysqld-nt
将以上代码保存为backup_db.bat
然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)
二、对于Linux主机
===========
假想环境:
MySQL
安装位置:/usr/local/mysq
论坛数据库名称为:bbs
MySQL
root
密码:123456
数据库备份目的地:/var/db_backup/
#!
/bin/bash
/usr/local/mysql/bin/mysqladmin
-u
root
–password=123456
shutdown
/usr/local/mysql/bin/mysqldump
–opt
-u
root
–password=123456
bbs
>
/var/db_backup/bbs.sql
/usr/local/mysql/bin/mysqld_safe
–user=mysql
&
将上述代码保存在/usr/local/sbin/backup_db.sh
对该脚本赋予执行权限:
#
chmod
755
/usr/local/sbin/backup_db.sh
加入crontab中自动执行:
#
crontab
-e
加入:
0
5
*
*
*
/usr/local/sbin/backup_db.sh

怎么定时自动备份mysql数据表

打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。
双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。
点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定”。
点击“设置”计划任务。
弹出的对话框,选择“计划”,再点击“新建”。
这里设置为从2014年1月24号起每天早上九点备份该数据库。如果你想提高备份频率、或者设置备份截止日期,请点击“高级”。
高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。
最后,输入电脑密码就大功告成。
温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。