mysql不小心删除数据库的解决办法:首先打开mysql的binlog功能;然后查看二进制日志状态;接着查看二进制日志文件的操作日志;最后通过Bin log恢复数据即可。
:
Mysql的Bin log数据恢复:不小心删除数据库
前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的数据库。
当然做Bin log的数据恢复前提是已经打开Bin log的功能,如果又没做数据备份,又没打开Bin log日志,那你就可能需要考虑快照等其它方式从系统的角度去恢复。
Bin log 常用于数据增量备份和恢复,以及数据库主从复制。如果没有开启,可以通过如下方式打开:
1、打开mysql的binlog功能
mysql是支持增量备份,但要打开mysql的bin log功能。
修改mysql的配置文件。linux是,windows是mysql的安装目录
在[mysqld]下面加上log-bin一行代码,如下面:
# Replication Master Server (default) # binary logging is required for replication log-bin=mysql-bin # binary logging format - mixed recommended binlog_format=mixed。
2、用如下方式查看二进制日志状态:是否开启
mysql> show variables like 'log_%';
3、查看所有二进制日志文件:
mysql> show libary logs;
mysql> show binary logs; +------------------+-----------+ Log_name File_size +------------------+-----------+ mysql-bin.000001 201 mysql-bin.000002 351 mysql-bin.000003 276 mysql-bin.000004 201 mysql-bin.000005 16509
4、Mysql查看二进制日志文件的操作日志
#mysqlbinlog --start-position=0 /mydata/data/mysql-bin.000089
5、通过Bin log恢复数据. 因为我整个Schema都删掉了,又没备份,正好开启了bin log日志,所以把历史的bin-log都重新执行了一遍,重新恢复到误删以前的版本,(我这里总共有91个文件,批量处理的):(99:是为了省掉去查找每一个bin-log日志文件的起始结束位置,设的一个无穷大的数字,简化操作.)
#mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-position=0 --stop-position=99 mysql -uroot -p123456 #mysqlbinlog /var/lib/mysql/mysql-bin.000002 --start-position=0 --stop-position=99 mysql -uroot -p123456 #mysqlbinlog /var/lib/mysql/mysql-bin.000003 --start-position=0 --stop-position=99 mysql -uroot -p123456 ... ...
所以总结结论是:
1、切记一定要定期备份;2、有备份的话恢复也快一点,可以从备份的时间点做增量备份,不需要像我这里从头开始91个文件全部批量跑一遍,当然我用编辑器批量处理的也还算快;3、另外一定要打开Bin-log日志,如果没做备份也可以通过Bin-log日志恢复。4、操作要小心。
其它:
1、还有个sql_log
mysql> show variables like 'sql_log_%';
Mysql开启关闭sql二进制日志:
mysql> set sql_log_bin=0; //关闭
set session sql_log_bin=0;
2、查找文件位置:
find / -name my.cnf
3、linux 查看当前所在目录的全路径
pwd命令:
/var/lib/mysql
4、查看当前binary log的情况:
mysql>show master status;
5、在my.cnf/my.ini中设定binary logs回滚天数:
expire_logs_days = 7
6、查看Master的bin log日志
mysql> show master logs; +-----------------+-----------+ Log_name File_size +-----------------+-----------+ log-bin.000001 98 +-----------------+-----------+ 1 row in set (0.00 sec) ---------------------
消息,Grok Build推出了代理控制面板,支持单终端多会话调度,旨在解决人工阻塞问题。开发者...
2 以色列军队若不从战争中占领的土地上撤消息,伊朗外长阿拉格齐:以色列军队若不从战争中占领的土地上撤出,战争结束便无法实现...
3 俄克拉荷马州警告投资者关于BG Wealth和消息,俄克拉荷马州证券监管机构警告投资者,BG Wealth Sharing Ltd及两个交易平台DSJ Exchange Pty...
4 巨鲸地址在Aster开仓14694枚ETHUSDT多单消息,据Aster链上浏览器数据,某巨鲸地址在Aster上开仓14,694枚ETHUSDT多单,整体仓位价值达25...
5 Michael Saylor:基于比特币的现代数字资产消息,吴说获悉,Strategy创始人Michael Saylor最新发文提出基于比特币的现代数字资产堆栈五层架...
6 美国政府问责局建议联邦存款保险公司加消息,美国政府问责局于6月8日向联邦存款保险公司主席Travis Hill发出信函,建议建立协调机制...
7 Factory发布2.0系统,构建企业级「软件工厂消息,Factory宣布推出2.0系统,将产品定位从单个程序员的辅助工具升级为贯穿开发全流程的「...
8 币界午讯 尼日利亚参议院通过加密货币监6月16日消息: 1. 尼日利亚参议院通过加密货币监管法案; 2. 比特币ETF总净流出达6484万美元;...
9 阿里发布首个具身大模型Qwen消息,阿里巴巴(发布了千问具身智能大模型Qwen-Robot系列,包含VLA操作模型Qwen-Robotmanip、VLN移...
10 0x082e...ca88:HYPE最大多头浮盈已达4270万美消息,HYPE回涨突破70美元,HyperLiquid上HYPE最大多头浮盈扩大至4270万美元。该巨鲸以5倍杠杆做多...
成都来彰科技 蜀ICP备2025134723号-1
资讯来源互联网,如有版权问题请联系管理员删除。