MySQL数据备份与恢复

一、 mysql冷备份

1. 添加数据库进行测试
mysql> create database testdata;
mysql> show databases;

在这里插入图片描述

2. 关闭MySQL服务
[root@centos03 ~]# systemctl stop mysqld

在这里插入图片描述

3. 创建备份目录
[root@centos03 ~]# mkdir /bak

在这里插入图片描述

4. 使用归档备份数据库
[root@centos03 ~]# tar zcf /bak/backup_mysql-$(date +F.%F).tar.gz /usr/local/mysql/data/

在这里插入图片描述

5. 切换到备份目录下
[root@centos03 ~]# cd /bak/
[root@centos03 bak]# ls

在这里插入图片描述

6. 模拟数据丢失删除/usr/local/mysql/data/,后ls查看usr/local/mysql/data/中的数据
[root@centos03 ~]# cd /usr/local/mysql/data/
[root@centos03 data]# rm -rf ./*
[root@centos03 data]# ls
[root@centos03 data]# cd

在这里插入图片描述

7. 进入备份目录,释放备份的归档文件
[root@centos03 ~]# cd /bak
[root@centos03 bak]# tar zxvf backup_mysql-F.2021-04-02.tar.gz

在这里插入图片描述

8. 进入备份的data中,查看数据,将数据移动到/usr/local/mysql/data中
[root@centos03 data]# cd /bak/usr/local/mysql/data/
[root@centos03 data]# ls
[root@centos03 data]# mv ./* /usr/local/mysql/data/

在这里插入图片描述

9. 查看数据,备份完成
[root@centos03 data]# cd /usr/local/mysql/data/
[root@centos03 data]# ls

在这里插入图片描述

10. 启动服务
[root@centos03 ~]# systemctl start mysqld

在这里插入图片描述

二、 使用mysqldump备份

1. 在testdata中创建表
mysql> create table testdata.ceshi(姓名 char(4),性别 char(3),手机号 char(11));

在这里插入图片描述

2. 使用mysql备份表
mysqldump -uroot -ppwd@123 testdata ceshi > ./testdate_ceshi.sql

在这里插入图片描述

3. 删除数据库中的表
mysql> drop table testdata.ceshi;

在这里插入图片描述

4. 恢复数据库中的表
[root@centos03 ~]# mysql -uroot -ppwd@123 testdata < ./testdate_ceshi.sql

在这里插入图片描述

5. 查看恢复数据

在这里插入图片描述

6. 备份testdata数据库
[root@centos03 ~]# mysqldump -uroot -ppwd@123 --database testdata > ./testdata.sql

在这里插入图片描述

7. 删除testdata数据库
mysql> drop database testdata;

在这里插入图片描述在这里插入图片描述

8. 恢复testdata数据库
[root@centos03 ~]# mysql -uroot -ppwd@123 < ./testdata.sql

在这里插入图片描述

9. 查看数据库数据
[root@centos03 ~]# mysql -uroot -ppwd@123 -e 'show databases;'

在这里插入图片描述

10. 备份所有数据库数据
mysqldump -uroot -ppwd@123 --opt --all-databases > ./all-database.sql

在这里插入图片描述

11. 删除testdata数据库进行恢复测试
mysql> drop database testdata;

在这里插入图片描述

12. 恢复数据并查看
[root@centos03 ~]# mysql -uroot -ppwd@123 < ./all-database.sql

在这里插入图片描述
在这里插入图片描述

三、 使用二进制日志备份

1. 开启二进制日志功能
[root@centos03 ~]# vim /etc/my.cnf
49 log-bin=mysql-bin

在这里插入图片描述

2. 重新启动服务
[root@centos03 ~]# systemctl restart mysqld

在这里插入图片描述

3. 切割日志
[root@centos03 ~]# mysqladmin -uroot -ppwd@123 flush-log

在这里插入图片描述

4. 添加数据
mysql> insert into ceshi values('张三','男','15314561235');
mysql> insert into ceshi values('李四','女','15234561235');

在这里插入图片描述

5. 使用mysqldump备份模拟数据丢失
mysqldump -uroot -ppwd@123 testdata ceshi > ./testdata_ceshi.sql

在这里插入图片描述

6. 再次切割日志,查看切割日志(之后的操作会保存在000008的二进制日志中)
[root@centos03 ~]# mysqladmin -uroot -ppwd@123 flush-log
[root@centos03 ~]# ls /usr/local/mysql/data/

在这里插入图片描述

7. 添加数据,查看表
mysql> insert into testdata.ceshi values('王五','女','15211111111');

在这里插入图片描述

8. 切割日志(完成添加操作的分割)
[root@centos03 ~]# mysqladmin -uroot -ppwd@123 flush-log

在这里插入图片描述

9. 使用mysqldump备份的数据恢复,模拟数据误操作丢失
[root@centos03 ~]# mysql -uroot -ppwd@123 testdata < ./testdata_ceshi.sql

在这里插入图片描述

10. 查看ceshi表
[root@centos03 ~]# mysql -uroot -ppwd@123 -e 'select * from testdata.ceshi;'

在这里插入图片描述

11. 使用二级制日志恢复数据
mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000009 | mysql -uroot -ppwd@123

在这里插入图片描述

12. 查看ceshi表
[root@centos03 data]# mysql -uroot -ppwd@123 -e 'select * from testdata.ceshi;

在这里插入图片描述

13. 切割日志,间隔添加两条数据,进行根据位置恢复数据,和根据时间恢复数据

在这里插入图片描述

14. 切割日志,
[root@centos03 data]# mysqladmin -uroot -ppwd@123 flush-log

在这里插入图片描述

15. 模拟数据丢失
[root@centos03 data]# mysql -uroot -ppwd@123 testdata < /root/testdata_ceshi.sql

在这里插入图片描述

16. 查看表

在这里插入图片描述

17. 查看日志的位置
[root@centos03 data]# mysqlbinlog ./mysql-bin.000011

在这里插入图片描述

18. 进行根据位置的数据恢复
[root@centos03 ~]# mysqlbinlog --start-position '171' --stop-position '320' /usr/local/mysql/data/mysql-bin.000011 | mysql -uroot -ppwd@123

在这里插入图片描述

19. 查看表

在这里插入图片描述

20. 根据二进制生成时间恢复数据,并查看表
[root@centos03 ~]# mysqlbinlog --start-date '2021-04-02 15:39:55' --stop-date '2021-04-02 15:43:05' /usr/local/mysql/data/mysql-bin.000011 | mysql -uroot -ppwd@123

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值