文章来由:
关于MySQL备份恢复的文章,网上一搜一大把,为何我还要花时间写这篇博文?
我不是闲的蛋疼,网上的文章一般也只是给个备份命令,或者恢复命令,有一些报错也没有说明原因。因为工作中遇到了这类问题,并不是像网上的文章那样:
- 从Windows下面用cmd导出的,用MySQL IDE恢复不能用
- 恢复时加什么--binary-mode=1
- 给备份文件添加上bom头信息:sublime-file-save with encoding - utf-8 with bom
等等,诸如此类。
我遇到的情况不一样,在此总结一下,希望能帮到和我一样遇到这样困扰的同行。
本人不是专业的MySQL DBA,数据库管理纯属兼职。:)
mysqldump备份出来的结果大体有两种,一种是sql文件,另外一种是gz文件(本质上也是sql,只不过备份后用gzip进行了压缩处理),但是恢复方式却不太相同,这里记录一下。
首先摆出我遇到的报错,相信大家也可能会遇到:
备份恢复方式一
使用mysqldump导出sql文件,再使用tar命令进行压缩后存放的。
备份命令:
mysqldump -u root -p confluence > /opt/confluence.sql tar confluence.sql.tar.gz confluence.sql
这类文件的恢复方法按道理说很简单,无非是解压后,恢复到数据库中
tar xzf confluence.sql.tar.gz # 登录MySQL数据库 mysql -u root -p # 创建数据库: mysql>create database confluence default character set utf8 collate utf8_bin; # 导入数据 use confluence; source confluence.sql
至此恢复完成。
当然也可以不登录mysql数据库恢复数据到指定数据库中
mysql -uroot -p confluence < /opt/confluence.sql
但是有人非要使用如下方法恢复数据,这就会出现文章开头提到的错误。很多人可能和笔者一样,一脸懵逼。
~]# gunzip < confluence.tar.gz |mysql -uroot -p confluence Enter password: ERROR: ASCII '