MySQL数据库中怎么恢复误删除数据
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,本篇文章为大家展示了MySQL数据库中怎么恢复误删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 找到binlog恢复数据的前提是必须开启Mysql
千家信息网最后更新 2024年11月28日MySQL数据库中怎么恢复误删除数据
本篇文章为大家展示了MySQL数据库中怎么恢复误删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1. 找到binlog
恢复数据的前提是必须开启Mysql的binlog日志,如果binlog日志没开启,请忽略此篇文档。binlog日志是否开启可以查看Mysql配置文件。日志位置一般在/var/lib/mysql目录或者编译安装的date目录下。也可登录Mysql用命令查看。
# cat /etc/my.cnflog_bin=mysql-bin# mysql -uroot -pEnter password: mysql> show variables like'log_bin%'; +---------------------------------+--------------------------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------------------------+ | log_bin | ON | | log_bin_basename | /home/programs/mysql-5.6.26/data/mysql-bin | | log_bin_index | /home/programs/mysql-5.6.26/data/mysql-bin.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+--------------------------------------------------+ 5 rows in set (0.00 sec)# ll /home/programs/mysql-5.6.26/data/mysql-bin*-rw-rw---- 1 mysql mysql 343629748 Oct 13 22:09 /home/programs/mysql-5.6.26/data/mysql-bin.000001 -rw-rw---- 1 mysql mysql 19 Sep 23 17:11 /home/programs/mysql-5.6.26/data/mysql-bin.index
如果有多个binlog日志也可以在Mysql命令行下查看当前binlog、切割binlog日志。切割完成binlog再次查看就会看到新的日志写入到新的binlog文件中。
mysql> show master status; +------------------+-----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+-----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 343629748 | | | | +------------------+-----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql> flush logs; Query OK, 0 rows affected (0.01 sec)
2. 找到binlog中错误的语句
可以binlog日志中找到错误语句执行的时间点,分别恢复错误语句前后的binlog日志为sql。也可以跳过此步,直接恢复整个binlog日志为sql,然后打开sql文件,删除错误语句。
# sudo mysqlbinlog --base64-output=DECODE-ROWS -v -d ids mysql-bin.000001 | grep --ignore-case -A3 -B4 '错误的sql语句'
3. 恢复binlog日志
通过mysqlbinlog命令直接恢复binlog日志为sql脚本,可以指定开始和结束时间。如果从上次备份(建议备份的同时刷新binlog日志)截至到恢复时间产生多个binlog日志,按从小到大的顺序分别导出成sql再顺序导入到数据库。
# sudo mysqlbinlog --base64-output=DECODE-ROWS -v -d ids --start-datetime '2016-10-11 15:22:53' mysql-bin.000001 > /home/stack/data.sql
上面命令中用-d ids指定要恢复数据库,如果要恢复表级别的数据,导出成sql后再进行过滤grep即可。
# more data.sql | grep --ignore-case -E 'insert|update|delete' | grep table
4. 恢复到数据库
恢复数据时,可能会有重复数据的报错,建议用-f参数忽略。
# mysql -uroot -p -f ids < data.sql
上述内容就是MySQL数据库中怎么恢复误删除数据,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
日志
数据
数据库
语句
错误
命令
文件
时间
内容
备份
多个
建议
技能
目录
知识
顺序
简明
从小到大
简明扼要
中用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
linux系统 数据库
电力 网络安全股票龙头
山西一站式软件开发费用
企业信息软件开发及系统维护
新站区软件开发
服务器内置4g
坦克世界游戏数据库
服务器搬迁公司
服务器有几种类型怎么区分分别
承接软件开发话术
自动化网络技术主要内容
慕义互联网科技有限公司昆明
苹果服务器出问题了么
联合国贸发会投资仲裁数据库
交易猫没有游戏服务器
log4j插入数据库
思想政治教育和网络安全立法
邯郸哪里有软件开发公司电话
go web服务器
攻击服务器代码
计算机网络安全编程知识点
腾讯云服务器怎么连接本地打印机
软件开发模型 利弊
联邦网络安全法案
房地产软件开发公司部门有哪些
mysql怎么浏览数据库
图灵网络技术有限公司绍兴
基础运维资料提升通信网络安全
中行软件开发中心体检后
好口碑的软件开发公司