mysql-binlog日志设置和恢复数据库
来源:用户投稿
我要投稿
作者:php开发
时间:2023-09-21 16:03
一、开启mysql-binlog日志
在mysql配置文件my.cnf加上如下配置
#其中mysql-bin就是日志文件的名称了,日志文件的名称和路径都可以自定义,如果不配置路径和名称,那么该文件会出现在mysql/var目录下,名称为mysql-bin.xxxxxx。
用mysql> show variables like 'log_%'; 查看日志文件的状态,结果显示log_bin ON ,就表示上面log-bin的日志开启了。
#[服务器集群的时候--> 这些配置完毕之后对于5.7以下版本应该是可以了,但是我们这个时候用的如果是5.7及以上版本的话,重启mysql服务会报错。这个时候我们必须还要指定一个参数
重启mysql: service mysqld restart ,最终日志一般保存在
二、使用mysqlbinlog来恢复binlog日志中的数据库数据
后回车, 输入数据库的root密码
命令用法:
常见的参数:
1. 以日期进行筛选(推荐使用,因为文件比较大,直接用日期容易定位)
a. 下面操作意思: 把binlog日志中的语句整理成bak001.sql语句
参照下面,直接复制上去]
b. 参数--base64-output=decode-rows -v,直接mysqlbinlog出来的文件执行sql部分的sql显示为base64编码格式。
如果没有全局变量定义,直接用mysqlbinlog会报没有这个命令。 那么就要用绝对路径。比如
最后语句变成:
生成的sql会在当前目录下。
d.上面C中语句生成sql执行就可以了。如果空间有限(阿里云碰到这种情况),可以不生成sql文件,直接通过binlog日志执行语句也是一样的。具体操作如下:
备注: sanzang表示数据库,有2处。 123456表示数据库密码
2. 以position事件进行筛选(以at当前定位点值表示)
注意:[系统日志情况,路径:/var/log/messages ; 测试端口号开启:netstat -anpt | grep 端口号 ]