#num1 mysql备份与还原 一、备份常用操作基本命令 1、备份命令mysqldump格式 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 2、备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 mysqldump --add-drop-table -uusername -ppassword -database databasename > backupfile.sql 3、直接将MySQL数据库压缩备份 mysqldump -hhostname -uusername -ppassword -database databasename | gzip > backupfile.sql.gz 4、备份MySQL数据库某个(些)表 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql 5、同时备份多个MySQL数据库 mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql 6、仅备份份数据库结构 mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql 7、备份服务器上所有数据库 mysqldump –all-databases > allbackupfile.sql 8、还原MySQL数据库的命令 mysql -hhostname -uusername -ppassword databasename < backupfile.sql 9、还原压缩的MySQL数据库 gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename 10、将数据库转移到新服务器 mysqldump -uusername -ppassword databasename | mysql -h*.*.*.* -C databasename 注:直接将数据库A直接转移到数据库B的方式(在服务器A中执行) mysqldump --default-character-set=utf8mb4 --host=127.0.0.1 -uusername -ppassword --opt dbname | mysql --host=127.0.0.2 -uusernameb -ppasswordb --default-character-set=utf8mb4 -C dbnamenew 1.必须保证服务器B的数据库能够服务器A访问 2.--opt命令可选,建议加上。等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以给出很快的转储操作并产生一个可以很快装入MySQL服务器的转储文件。 3.--default-character-set=utf8mb4 指定该数据库连接的字符类型。如果服务器默认未utf8的话,导出的数据可能会丢失四字节的unicode信息(表情之类的) 4.-C 客户端和服务器之间启用压缩传递所有信息。当然得要有咯 11、--master-data 和--single-transaction 在mysqldump中使用--master-data=2,会记录binlog文件和position的信息 。--single-transaction会将隔离级别设置成repeatable-commited 12、导入数据库 常用source命令,用use进入到某个数据库,mysql>source d:\test.sql,后面的参数为脚本文件。 13、查看binlog日志 查看binlog日志可用用命令 mysqlbinlog binlog日志名称|more 14、general_log General_log记录数据库的任何操作,查看general_log 的状态和位置可以用命令show variables like "general_log%" ,开启general_log可以用命令set global general_log=on 二、增量备份 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份。增量备份的原理就是使用了mysql的binlog志。 1、首先做一次完整备份: mysqldump -h10.6.208.183 -utest2 -p123 -P3310 --single-transaction --master-data=2 test>test.sql这时候就会得到一个全备文件test.sql 在sql文件中我们会看到: -- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;是指备份后所有的更改将会保存到bin-log.000002二进制文件中。 2、在test库的t_student表中增加两条记录,然后执行flush logs命令。这时将会产生一个新的二进制日志文件bin-log.000003,bin-log.000002则保存了全备过后的所有更改,既增加记录的操作也保存在了bin-log.00002中。 3、再在test库中的a表中增加两条记录,然后误删除t_student表和a表。a中增加记录的操作和删除表a和t_student的操作都记录在bin-log.000003中。 三、恢复 1、首先导入全备数据 mysql -h10.6.208.183 -utest2 -p123 -P3310 < test.sql,也可以直接在mysql命令行下面用source导入 2、恢复bin-log.000002 mysqlbinlog bin-log.000002 |mysql -h10.6.208.183 -utest2 -p123 -P3310 3、恢复部分 bin-log.000003 在general_log中找到误删除的时间点,然后更加对应的时间点到bin-log.000003中找到相应的position点,需要恢复到误删除的前面一个position点。 可以用如下参数来控制binlog的区间 --start-position 开始点 --stop-position 结束点 --start-date 开始时间 --stop-date 结束时间 找到恢复点后,既可以开始恢复。 mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h10.6.208.183 -utest2 -p123 -P3310 #num2 mysql字符集说明 一、mysql中涉及的几个字符集 Ø character-set-server/default-character-set:服务器字符集,默认情况下所采用的。 Ø character-set-database:数据库字符集。 Ø character-set-table:数据库表字符集。 优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。 Ø character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。 Ø character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。 Ø character_set_connection 连接字符集。 在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。要处理中文,则可以将character-set-server和character-set-client均设置为GB2312,如果要同时处理多国语言,则设置为UTF8。 二、解决乱码问题 通常乱码问题是因为字符集不统一而造成的。通常字符character-set-server、character-set-client、character_set_connection需要统一 三、修改默认字符集 1、 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 如 default-character-set = utf8 character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart 使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 +--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+ 2、 还有一种修改字符集的方法,就是使用mysql的命令 mysql> SET character_set_client = utf8 ; init_connect='SET NAMES utf8' #num3 FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较 1、FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。解锁的语句也是unlock tables。 2、LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} 这个命令是表级别的锁定,可以定制锁定某一个表。例如: lock tables test read; 不影响其他表的写操作。解锁语句也是unlock tables。 这两个语句在执行的时候都需要注意个特点,就是 隐式提交的语句。在退出mysql终端的时候都会隐式的执行unlock tables。也就是如果要让表锁定生效就必须一直保持对话。 3、MYSQL的read lock和wirte lock read-lock: 允许其他并发的读请求,但阻塞写请求,即可以同时读,但不允许任何写。也叫共享锁 write-lock: 不允许其他并发的读和写请求,是排他的(exclusive)。也叫独占锁 #num4 mysq参数sql_safe_updates限制范围 在mysql运维中出现过不少因为update/delete条件错误导致数据被误更新或者删除的case,为避免类似问题的发生,可以用sql_safe_updates参数来对update/delete做限制。这个参数设置为on后,可防止因程序bug或者DBA手工误操作导致的整个表被更新或者删除的情况。   设置这个参数时需要注意一下几点: a、设置前需要确认程序中所有的update和delete都符合sql_safe_updates的限制规范,不然程序会报错。 b、5.0,5.1都是session级别的,5.6是global&session级别;低版本的数据库只能在程序创建session时设置带上set sql_safe_updates=on;高版本的数据库可以直接set global set sql_safe_updates=on,设置完成后让程序重连后生效。 限制规范: 示例表结构: CREATE TABLE `delay_monitor` ( `id` int(11) NOT NULL, `Ftime` datetime DEFAULT NULL, `Fgtid` varchar(128) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin 1、update a、报错条件:不带where、带where无索引、where条件为常量 不带where:update delay_monitor set Ftime=now(); 带where无索引:update delay_monitor set Ftime=now() where Fgtid='test'; where条件为常量:update delay_monitor set Ftime=now() where 1; b、执行条件:带where带索引、不带where+带limit、带where无索引+limit、带where有索引+limit、where条件为常量+limit 带where带索引:update delay_monitor set Ftime=now() where id=2; 不带where+带limit: update delay_monitor set Ftime=now() limit 1; 带where无索引+limit:update delay_monitor set Ftime=now() where Fgtid='test' limit 1; 带where有索引+limit:update delay_monitor set Ftime=now() where id =2 limit1; where条件为常量+limit:update delay_monitor set Ftime=now() where 1 limit 1; 2、delete 相对于update,delelte的限制会更为严格;where条件为常量或者为空,将不予执行。 a、报错条件:不带where、带where无索引、不带where+带limit、where条件为常量、where条件为常量+limit 不带where:delete delay_monitor set Ftime=now(); 带where无索引:delete delay_monitor set Ftime=now() where Fgtid='test'; 不带where+带limit: delete delay_monitor set Ftime=now() limit 1; where条件为常量:delete delay_monitor set Ftime=now() where 1; where条件为常量+limit:delete delay_monitor set Ftime=now() where 1 limit 1; b、执行条件:带where带索引、带where无索引+limit、带where有索引+limt 带where带索引:delete delay_monitor set Ftime=now() where id=2; 带where无索引+limit:delete delay_monitor set Ftime=now() where Fgtid='test' limit 1; 带where有索引+limit:delete delay_monitor set Ftime=now() where id =2 limit1; 总结如下表:key表示所有、const表示常量 操作 no where where key where nokey limit where nokey+limit where key+limit where const where const+limit delete NO YES NO NO YES YES NO NO update NO YES NO YES YES YES NO YES #num5 mysqldump备份和恢复 https://www.cnblogs.com/linuxk/p/9371475.html #num6 Xtrabackup备份与恢复 https://www.cnblogs.com/linuxk/p/9372990.html #num7 mysql热备份(mysqldump) #num8 mysql热拷贝 https://www.jb51.net/article/70972.htm #num9 mysqldata目录和binlog目录搬迁的方法 https://www.cnblogs.com/Cherie/p/3309487.html #num10 https://www.cnblogs.com/wade-lt/p/9008058.html #num11 #https://blog.csdn.net/enweitech/article/details/51612858 #num12 mysql数据库的完整备份、差异备份、增量备份 #https://blog.csdn.net/zmcyu/article/details/75353245 完整备份:(t为数据库名) Mysql -uroot -pPassword  t -e "FLUSH TABLES";  // 关闭所有打开的表, 把内存中的缓存写入磁盘 Mysql -uroot -pPassword  t -e "FLUSH TABLES WITH READ LOCK";  // 关闭所有打开的表, 加只读锁, 防止新的写入操作 MysqlAdmin -uroot -pPassword  flush-logs // 生成新的二进制日志文件和下面的备份时间保持同步, 以后对数据库的操作都会记录这个文件中 mysqldump -uroot -pPassword t  > t.sql  // 完整备份 差异备份:(备份前需要打开my.ini, 取消[wampmysqld]中log-bin=mysql-bin的#号) mysqladmin -u root -p flush-logs // 生成新的二进制日志文件, 执行后会发现新产生了类似mysql-bin.000001这样的二进制备份文件 恢复完整备份 mysql -uroot -pPassword t < t.sql 恢复差异备份(要按顺序恢复) mysqlbinlog d:\wamp\bin\mysql\mysql5.6.17\data\mysql-bin.000007 | mysql -uroot -pPassword  增量备份: 1.MySQLdump增量备份配置 执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中加入 log-bin=/opt/Data/MySQL-bin "log-bin="后的字符串为日志记载目录,一般建议放在不同于MySQL数据目录的磁盘上。 ----------------------------------------------------------------------------------- mysqldump >       导出数据 mysql <           导入数据  (或者使用source命令导入数据,导入前要先切换到对应库下)   注意一个细节: 若是mysqldump导出一个库的数据,导出文件为a.sql,然后mysql导入这个数据到新的空库下。 如果新库名和老库名不一致,那么需要将a.sql文件里的老库名改为新库名, 这样才能顺利使用mysql命令导入数据(如果使用source命令导入就不需要修改a.sql文件了)。 ----------------------------------------------------------------------------------- 2.MySQLdump增量备份 假定星期日下午1点执行全量备份,适用于MyISAM存储引擎。 [root@test-huanqiu ~]# MySQLdump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql 对于InnoDB将--lock-all-tables替换为--single-transaction --flush-logs为结束当前日志,生成新日志文件; --master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称, 用于日后恢复时参考,例如输出的备份SQL文件中含有: CHANGE MASTER TO MASTER_LOG_FILE='MySQL-bin.000002', MASTER_LOG_POS=106; 3.MySQLdump增量备份其他说明: 如果MySQLdump加上–delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用MySQLdump –delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用 PURGE MASTER LOGS更为安全。 每日定时使用 MySQLadmin flush-logs来创建新日志,并结束前一日志写入过程。并把前一日志备份,例如上例中开始保存数据目录下的日志文件 MySQL-bin.000002 , ... 1.恢复完全备份 mysql -u root -p < backup_sunday_1_PM.sql 2.恢复增量备份 mysqlbinlog MySQL-bin.000002 … | MySQL -u root -p注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能 --compatible=name 它告诉 MySQLdump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、MySQL323、MySQL40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。 --complete-insert,-c 导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。 --default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 --disable-keys 告诉 MySQLdump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。 --extended-insert = true|false 默认情况下,MySQLdump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。 --hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。 --lock-all-tables,-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。 --lock-tables 它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。 --no-create-info,-t 只导出数据,而不添加 CREATE TABLE 语句。 --no-data,-d 不导出任何数据,只导出数据库表结构。 mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump 将只备份表结构。--databases指示主机上要备份的数据库。 --opt 这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 MySQLdump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 MySQLdump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。 --quick,-q 该选项在导出大表时很有用,它强制 MySQLdump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。 --routines,-R 导出存储过程以及自定义函数。 --single-transaction 该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。 --triggers 同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。 跨主机备份 使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库: -C 指示主机间的数据传输使用数据压缩 mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb 结合Linux的cron命令实现定时备份 比如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump文件为gz格式 30 1 * * * mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz 一个完整的Shell脚本备份MySQL数据库示例。比如备份数据库opspc [root@test-huanqiu ~]# vim /root/backup.sh #!bin/bash echo "Begin backup mysql database" mysqldump -u root -ppassword opspc > /home/backup/mysqlbackup-`date +%Y-%m-%d`.sql echo "Your database backup successfully completed" [root@test-huanqiu ~]# crontab -e 30 1 * * * /bin/bash -x /root/backup.sh > /dev/null 2>&1 mysqldump全量备份+mysqlbinlog二进制日志增量备份 1)从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,所以还需要结合mysqlbinlog二进制日志增量备份。 首先确保已开启binlog日志功能。在my.cnf中包含下面的配置以启用二进制日志: [mysqld] log-bin=mysql-bin 2)mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件: mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql 其中参数--master-data=[0|1|2] 0: 不记录 1:记录为CHANGE MASTER语句 2:记录为注释的CHANGE MASTER语句 mysqldump全量+增量备份方案的具体操作可参考下面两篇文档: 数据库误删除后的数据恢复操作说明 解说mysql之binlog日志以及利用binlog日志恢复数据 -------------------------------------------------------------------------- 下面分享一下自己用过的mysqldump全量和增量备份脚本 应用场景: 1)增量备份在周一到周六凌晨3点,会复制mysql-bin.00000*到指定目录; 2)全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执行,并会删除上周留下的mysq-bin.00000*,然后对mysql的备份操作会保留在bak.log文件中。 脚本实现: 1)全量备份脚本(假设mysql登录密码为123456;注意脚本中的命令路径): [root@test-huanqiu ~]# vim /root/Mysql-FullyBak.sh #!/bin/bash # Program # use mysqldump to Fully backup mysql data per week! # History # Path BakDir=/home/mysql/backup LogFile=/home/mysql/backup/bak.log Date=`date +%Y%m%d` Begin=`date +"%Y年%m月%d日 %H:%M:%S"` cd $BakDir DumpFile=$Date.sql GZDumpFile=$Date.sql.tgz /usr/local/mysql/bin/mysqldump -uroot -p123456 --quick --events --all-databases --flush-logs --delete-master-logs --single-transaction > $DumpFile /bin/tar -zvcf $GZDumpFile $DumpFile /bin/rm $DumpFile Last=`date +"%Y年%m月%d日 %H:%M:%S"` echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile cd $BakDir/daily /bin/rm -f * 2)增量备份脚本(脚本中mysql的数据存放路径是/home/mysql/data,具体根据自己的实际情况进行调整) [root@test-huanqiu ~]# vim /root/Mysql-DailyBak.sh #!/bin/bash # Program # use cp to backup mysql data everyday! # History # Path BakDir=/home/mysql/backup/daily                     //增量备份时复制mysql-bin.00000*的目标目录,提前手动创建这个目录 BinDir=/home/mysql/data                                   //mysql的数据目录 LogFile=/home/mysql/backup/bak.log BinFile=/home/mysql/data/mysql-bin.index           //mysql的index文件路径,放在数据目录下的 /usr/local/mysql/bin/mysqladmin -uroot -p123456 flush-logs #这个是用于产生新的mysql-bin.00000*文件 Counter=`wc -l $BinFile |awk '{print $1}'` NextNum=0 #这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的 for file in `cat $BinFile` do     base=`basename $file`     #basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./     NextNum=`expr $NextNum + 1`     if [ $NextNum -eq $Counter ]     then         echo $base skip! >> $LogFile     else         dest=$BakDir/$base         if(test -e $dest)         #test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去         then             echo $base exist! >> $LogFile         else             cp $BinDir/$base $BakDir             echo $base copying >> $LogFile          fi      fi done echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ! >> $LogFile 3)设置crontab任务,执行备份脚本。先执行的是增量备份脚本,然后执行的是全量备份脚本: [root@test-huanqiu ~]# crontab -e #每个星期日凌晨3:00执行完全备份脚本 0 3 * * 0 /bin/bash -x /root/Mysql-FullyBak.sh >/dev/null 2>&1 #周一到周六凌晨3:00做增量备份 0 3 * * 1-6 /bin/bash -x /root/Mysql-DailyBak.sh >/dev/null 2>&1 4)手动执行上面两个脚本,测试下备份效果 [root@test-huanqiu backup]# pwd /home/mysql/backup [root@test-huanqiu backup]# mkdir daily [root@test-huanqiu backup]# ll total 4 drwxr-xr-x. 2 root root 4096 Nov 29 11:29 daily [root@test-huanqiu backup]# ll daily/ total 0 先执行增量备份脚本 [root@test-huanqiu backup]# sh /root/Mysql-DailyBak.sh  [root@test-huanqiu backup]# ll total 8 -rw-r--r--. 1 root root 121 Nov 29 11:29 bak.log drwxr-xr-x. 2 root root 4096 Nov 29 11:29 daily [root@test-huanqiu backup]# ll daily/ total 8 -rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000030 -rw-r-----. 1 root root 152 Nov 29 11:29 mysql-binlog.000031 [root@test-huanqiu backup]# cat bak.log  mysql-binlog.000030 copying mysql-binlog.000031 copying mysql-binlog.000032 skip! 2016年11月29日 11:29:32 Bakup succ! 然后执行全量备份脚本 [root@test-huanqiu backup]# sh /root/Mysql-FullyBak.sh  20161129.sql [root@test-huanqiu backup]# ll total 152 -rw-r--r--. 1 root root 145742 Nov 29 11:30 20161129.sql.tgz -rw-r--r--. 1 root root 211 Nov 29 11:30 bak.log drwxr-xr-x. 2 root root 4096 Nov 29 11:30 daily [root@test-huanqiu backup]# ll daily/ total 0 [root@test-huanqiu backup]# cat bak.log  mysql-binlog.000030 copying mysql-binlog.000031 copying mysql-binlog.000032 skip! 2016年11月29日 11:29:32 Bakup succ! 开始:2016年11月29日 11:30:38 结束:2016年11月29日 11:30:38 20161129.sql.tgz succ ---------------------------------------------------------------- ----------------------------------------------------------------