mysql二进制日志恢复数据报错及解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/skyejy/article/details/80685738

1. 启动和设置二进制日志

这里写图片描述
(数据库文件最好不要和日志文件放在同一个磁盘上,这样当数据库文件所在磁盘发生损坏的时候,可以使用日志来恢复数据)
在这里可能会遇到找不到“my.ini”文件的问题。我找了半天才找到。
在:C:\ProgramData\MySQL\MySQL Server 8.0
如果ProgramData文件夹也没显示,那么可以在文件查看选择显示隐藏的文件,然后就会出现了。

这样修改后,mysql却无法打开了:

这里写图片描述
我发现有可能是文件位置的“\”符号用反了,修改为:
log-bin=”D:/mysql/log/binlog”
但依然报错。

当我把log-bin后的路径删除,此时可以开启服务。
因此,可以推测问题出在路径上。
后来,我把位置的引号去掉,终于可以顺利运行了。被这一个小问题困扰了上个小时,还是要细心啊。

正确无误的写法是:
这里写图片描述

2.查看日志

这里写图片描述
log_bin的值为on说明开启二进制日志成功
这里写图片描述
根据这些信息来把数据恢复到之前的状态,有两种方式:按时间或者按节点

C:\Program Files\MySQL\MySQL Server 8.0\bin>

mysqlbinlog –start-date=”10:15:36” –stop-date=”10:16:29” d://mysqllogs/binlog.000001|mysql -uroot -p
mysqlbinlog –no-defaults –start-position=”1159” –stop-position=”1594” d:\mysqllogs\binlog.000001 | mysql -u root -p

在用二进制恢复时,我又遇到了一个错误:mysqlbinlog error unknown variable start-date
这里写图片描述
这个问题困扰了我很久,我看了老师的ppt,也上网查了资料,语句都没错呀。但一直报错。
直到后来我意识到“date”和“datetime”是不同的。
于是我把语句更改成了:
这里写图片描述
顺利运行,没有报错。经过检验,恢复成功。

猜你喜欢

转载自blog.csdn.net/skyejy/article/details/80685738