mysql优化 个人笔记 非礼勿扰 -m08
2021/4/14 19:30:05
本文主要是介绍mysql优化 个人笔记 非礼勿扰 -m08,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
binlog 简单使用 数据恢复
1. 查看binlog状态
show variables like '%log%';
2. 打开binlog
vim /etc/my.cnf[mysqld]# binlog 配置log-bin =/var/lib/mysql/log-bin.log expire-logs-days = 14max-binlog-size = 500M server-id = 1
重启 mysql: service mysqld restart;
再次查看binlog日志 已经开启:
show variables like 'log_bin';
3. 创建数据库 创建表
CREATE DATABASEIF NOT EXISTS binlog_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4. 查看binlog
cd /var/lib/mysql ll
也可以直接通过命令查看:
mysql> show master logs;
5.插入数据
INSERT INTO `binlog_test`.`test` (`id`, `name`, `age`)VALUES('1', '小智障', '18'),('2', '大傻子', '20');
查看最后一个binlog日志的编号名称及其最后一个操作事件pos结束点的值
show master status;
刷新日志
Flush logs;
查看日志 刷新之后 生成一个新的文件
show master logs;
每当mysqld服务重启时,会自动执行刷新binlog日志命令,
mysqldump备份数据时加-F选项也会刷新binlog日志
清空所有binlog日志
reset master;
查看日志文件内容
cd /var/lib/mysql mysqlbinlog log-bin.000002报错: mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'解决方法: 1. MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8 重启服务器 2. 加no-defaults参数 mysqlbinlog --no-defaults log-bin.000002
可以这样查看:
show binlog events in 'log-bin.000001';-- 指定查询,从pos点406开始查询 show binlog events in 'log-bin.000001' from 154;-- limit 范围查询show binlog events in 'log-bin.000001' from 154 limit 3,5 ;
6.测试恢复数据
0. 删除日志 reset master;1.清空表 : truncate table test;2.创建一条数据:INSERT INTO `binlog_test`.`test` (`id`, `name`, `age`)VALUES('1', '小智障', '18');3.模拟数据库备份 mysqldump -u root -p binlog_test > /usr/local/test.sql;1. 再新增一条数据INSERT INTO `binlog_test`.`test` (`id`, `name`, `age`)VALUES('2', '大智障', '22');2. 模拟误删 mysql> truncate table test;3. select * from test; 删库了 要不要跑路啊!!!4. 先还原备份的数据库 source /usr/local/test.sql;5.select * from test;一条数据 还差一条呢 ? 跑路吗?5. 别慌 还有binlog呢 刷新一个新的日志 : flush logs;为啥要?刷新一个新的日志呢 之前日志是01 刷新值周日志是02新的操作都会写入到02中 6. 查看日志show master logs;7. show binlog events in 'log-bin.000001';8. 查看pos 从586开始 730结束/usr/bin/mysqlbinlog --no-defaults --start-position=586 --stop-position=730 --database=binlog_test /var/lib/mysql/log-bin.000001 | /usr/bin/mysql -uroot -p123456 -v test9. 查看数据 我擦 居然恢复了10. 还能根据日期恢复 cha/usr/bin/mysqlbinlog --no-defaults --start-datetime="2018-04-27 20:57:55" --stop-datetime="2018-04-27 20:58:18" --database=binlog_test /var/lib/mysql/log-bin.000001 | /usr/bin/mysql -uroot -p123456 -v test 查看日期: mysqlbinlog --no-defaults log-bin.000001
mysqlbinlog --no-defaults log-bin.000001
这篇关于mysql优化 个人笔记 非礼勿扰 -m08的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享