linux下mysql数据库备份还原

10 篇文章 0 订阅
9 篇文章 0 订阅

1.压缩备份数据库

mysqldump --databases databasesname --default-character-set=utf8 -hlocalhost -uuser -ppassword | gzip >/home/test.sql.gz

如果遇到

mysqldump: Got error: 1016: Can't open file: './capitalog_beta/price_rateinfousdcadw1.frm' (errno: 24) when using LOCK TABLES
加上一句

--lock-tables=false


2.只备份压缩数据库表结构

mysqldump --databases databasesname --default-character-set=utf8 --no-data -hlocalhost -uuser -ppassword | gzip >/home/test.sql.gz

3.备份压缩数据库,以日期保存压缩后文件

mysqldump --databases databasesname --default-character-set=utf8 --no-data -hlocalhost -uuser -ppassword | gzip >/home/database$(date +%y%m%d).sql.gz

4.数据库备份小脚本

以每天日期保存数据库备份,并且使备份只保留固定天数

/usr/bin/mysqldump --databases databasesname --default-character-set=utf8 -hlocalhost -uuser -ppassword | gzip >/home/database$(date +%y%m%d).sql.gz

#delete 7 days ago file
find /home/x/backup/ -type f -mtime +7 -exec rm '{}' \;


5.还原压缩的备份

gunzip < backupfile.sql.gz | mysql -uusername -ppassword 


注意:可以看到我并没有制定数据库名,因此上面的命令只能还原到原数据库名称中,因为sql中记录了原数据库的名称

如果想把原数据库名称为beta1的数据库还原到beta2的数据库中,我们需要先解压备份文件,然后修改sql的数据库名称,最后在还原

gzip -d test.sql.gz 
vim test.sql
在文件的开始可以看到创建数据库的sql

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `beta` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `beta`;
修改为我们想还原到的数据库名

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `beta2` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `beta2`;

最后一步还原

mysql -ufiresnow -p1234 < test.sql





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值