mysqlbinlog数据库简单恢复例子
mysqlbinlog常见的选项有以下几个:
--start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
--stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
--start-position:从二进制日志中读取指定position 事件位置作为开始。
--stop-position:从二进制日志中读取指定position 事件位置作为事件截至
执行查看当天记录日记的文件 mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000024 | 227373 | | | | +------------------+----------+--------------+------------------+-------------------+ 再执行刷新日记记录: mysql> flush logs; Query OK, 0 rows affected (0.02 sec)
使用mysqlbinlog导出sql语句
mysqlbinlog 具体路径地址 -d 数据库名 -vvv --base64-output=decode-rows mysql-bin.0001具体地址 > 导出具体路径+文件名
例子:
[root]#/www/server/mysql/bin/mysqlbinlog -d webdb -vvv --base64-output=decode-rows /www/server/data/mysql-bin.000016 > /www/server/data/111.sql
也可以增加时间点查询或者增加具体到某个表的操作 |grep '`ls_order`
[root]#www/server/mysql/bin/mysqlbinlog -d webdb --start-datetime='2021-11-22 00:00:00' --stop-datetime='2021-11-24 15:26:38' /www/server/data/mysql-bin.000015 |grep '`ls_order`' >>/www/server/data/ls_order01.sql
也可以以操作节点去查询。
1 | [root]#www/server/mysql/bin/mysqlbinlog -d webdb --start-position=875 --stop-position=21564 /www/server/data/mysql-bin.000015 |grep '`ls_order`' >>/www/server/data/ls_order01.sql |
重新运行导入丢失sql
1.shell > mysql -uroot -p Enter password: 输入数据库密码,回车。 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 59 Server version: 5.6.50-log Source distribution Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 2.切换操作数据库。 mysql> use webdb;
Database changed mysql-> source /root/binlog2sql/ls_order01.sql; 回车 3.执行还原数据。再查看一下数据是否回复。
[root]#www/server/mysql/bin/mysqlbinlog -d dingho_cc --start-datetime='2021-11-22 00:00:00' --stop-datetime='2021-11-24 15:26:38' /www/server/data/mysql-bin.000015|grep '`ls_order`' >>/www/server/data/ls_order01.sql
标签:
MYSQL
, mysqlbinlog
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现