前言
这种情况我们使用 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 访问。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于