获取2024golang面试题
1、开启bin-log
打开mysql配置文件 /etc/mysql/my.cnf(这个位置不是固定的,根据你安装的mysql目录去找)
放开log_bin这一行
log_bin = /var/log/mysql/mysql-bin.log
随后重启mysql 即执行
/etc/init.d/mysql restart
进入数据库,查看log_bin开启状态
show variables like '%log_bin%';
图片
可以看到 log_bin的值是ON就表示已经开启了log-bin
再到/var/log/mysql/目录下查看,就已经多了两个log-bin日志文件
mysql-bin.000001
mysql-bin.index
为什么是两个呢?
我们打开mysql-bin.index文件后看到只有一行数据:
/var/log/mysql/mysql-bin.000001
什么意思呢?也即是mysql-bin.index这个文件最终指向了mysql-bin.000001文件。
2、创建数据库表并插入数据
1DROP TABLE IF EXISTS `xoxo`;
2CREATE TABLE `xoxo` (
3 `stuname` varchar(10) DEFAULT NULL
4) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5
6INSERT INTO `xoxo` VALUES ('tom');
7INSERT INTO `xoxo` VALUES ('lilei');
8INSERT INTO `xoxo` VALUES ('jimGreen');
3、删库跑路
drop table xoxo;
如果此时没有对数据库做备份,且没有开启binlog,删完库基本就只能坐那哭了。不哭也行,那就是——撒丫子赶紧跑路~
撒丫子跑鸭
4、恢复数据:
先查看应该从哪里恢复。
执行命令
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000001 |more
我们可以看到每一次针对数据库的操作节点。
如
# at 833
# at 934
# at 961
我们注意到在删除数据库表的下一个节点是961,那我们恢复数据时的终止节点也需要选这个
恢复:
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000001 --stop-position='961'|mysql -uroot -pfulianzhuren
再进入数据库看看,数据全部都恢复啦。
欢迎关注微信公众号「Golang知识局」