前言
这种情况我们使用binlog也是无法恢复的,因为binlog我们正常的是row模式,都是一些更新操作,我试了好久也没能修改回来,但是记录一下吧。
binlog的一些命令
mysql binlog 二进制文件转换为sql文件
mysqlbinlog --base64-output=decode-rows -v /var/lib/mysql/binlog.000001 --result-file=/temp.sql
查看服务器binlog的文件信息
show master status;
按照position回滚
//--no-defaults 忽略查不到字段的错误 -f 忽略主键冲突错误
mysqlbinlog --no-defaults /var/lib/mysql/binlog.000001 --start-position=421 --stop-position=143807624 | mysql -u root -f -p123456
按照时间回滚
mysqlbinlog --start-datetime="2022-03-20 15:56:00" --stop-datetime="2022-03-30 15:59:00" -d solo /var/lib/mysql/binlog.000001 | mysql -uroot -p123456;
我的解决方案
- 我把我的服务器重置了,因为我的这个服务器就是用来搭建个人博客的,所以没有其他数据,我直接重置了服务器,防止黑客在我服务器中有后门
- 数据库密码设置为比较复杂的密码,也可以改改端口号
- 设置MySQL账号的权限,root用户只能本地访问,其他用户可以指定ip访问。