二进制备份还原案例

打开二进制日志写进配置文件

vi /etc/my.cnf
[mysqld]
log_bin=/data/mysql/mysqlbinlog #等于后面是目录路径 mysqlbinlog是二进制文件前缀
重启mysql
systemctl restart mariadb

使用mysqldump工具把数据库备份

这是备份指定数据库
mysqldump -B hellodb > buckup/hellodb.sql
这是备份所有数据库
mysqldump -A > buckup/all.sql

#完全备份,并记录备份的二进制位置(可以也用这个,这个更加好)
mysqldump  -uroot -pmagedu -A -F --default-character-set=utf8  --single-transaction --master-data=2 | gzip > /backup/all_`date +%F`.sql.gz

再在数据库表中添加数据

insert student (name,age,gender,classid) values ('chickabiddy',18,'M',7);
insert student (name,age,gender,classid) values ('Bad baby',15,'F',6);

添加完成后把二进制文件进行备份(二进制文件存放位置在var/lib/mysql(默认存放位置) 自己设置的在my.cnf查看)

mysqlbinlog  mysqlbinlog.000001 > backupmysql

#损坏数据库

rm -rf /var/lib/mysql/*

压缩的就解压缩

gzip -d all_2019-11-25.sql.gz

#CentOS 8 需要事先生成数据库相关文件,CentOS7 不需要执行此步直接重启

mysql_install_db  --user=mysql
systemctl restart mariadb

重启后临时关闭二进制日志

MariaDB [(none)]>set sql_log_bin=0;

还原数据库和表数据

source /backup/all.sql
source /backup/backupmysql

也可以这样
mysqlbinlog backupmysql>> all.sql
source /backup/all.sql

版权声明:本文为qq_45637155原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。