数据可以重复导入,每次都是导入的那个数据,如果数据不一致,会以导入的数据覆盖现在有的。
完全备份 备份所有数据(整个/整个库/整个表) a.只能把数据恢复到备份之前的状态,新产生的数据无法恢复 b.备份数据和恢复数据都要加写锁
差异备份 备份完全备份后新产生的 从完全开始叠加
增量备份 备份上一次备份后新产生的 只增加新的
直接备份mysql的data或者存储文件。
查看存储文件所在位置
show global variables like "%datadir%";
备份后直接恢复即可
tar -zcvf mysqlbak.tar.gz /var/lib/mysql
查看默认使用目录,一般为空
show variables like "secure_file_priv";
配置数据目录 [mysqld]下添加
secure_file_priv="/data"
导出查询结果,只能到/data这个默认目录下面
select * from mysql.user into outfile "/data/one.txt";
开启binlog日志
vim /etc/my.cnf
log_binserver_id=20 #局域网内不能重复,1-255
查看binlog日志,将从开启binlog日志时开始记录
cd /var/lib/mysql
mysqlbinlog xx.000001
1.首先做一次完整备份:
这时候就会得到一个全备文件test.sql
mysqldump test>test.sql
在sql文件中我们会看到:是指备份后所有的更改将会保存到bin-log.000002二进制文件中。
cat test.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;
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 test < test.sql;
2.恢复整个bin-log.000002
mysqlbinlog bin-log.000002 |mysql test -uroot -p123456
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。