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

生产环境中使用mysql数据库 , 我们如何进行数据备份?
这里我们采用mysqldump来进行数据备份,mysqldump是mysql用于转存储数据库的实用程序 。它主要产生一个SQL脚本 , 其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等 。
创建目录mkdir /root/mysqlcd /root/mysql编写备份脚本vistartBackup.sh【mysql数据库定时备份方法 mysql 定时备份数据】数据导出脚本如下:
#!/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 -mtime7 | xargs rm -f定时直行备份脚本给脚本赋权限
chmodx startBackup.shchmodx removeHistory.shcentos命令行中输入 crontab -e编写定时执行脚本,每天凌晨1点进行备份并清除历史数据
0 1 * * * /*****/startBackup.sh0 1 * * * /*****/removeHistory.sh配置完成后每天就会定时执行备份 , 备份信息如下:

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

文章插图
备份文件
数据恢复数据压缩备份后,我们可以通过下面的命令来进行数据恢复
#!/bin/bashif [ -z $1 ] || [ ! -f $1 ]thenecho "请输入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' ]thenecho '文件格式不正确,请输入 .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 ]thenecho '删除临时文件.'rm -f $base_dir$sql_filefiecho '导入完成.'
mysql数据库定时备份方法 mysql 定时备份数据

文章插图
怎么定时自动备份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