关于数据库使用binlog日志进行备份

自己在做一个项目的时候,一直在考虑数据库备份的问题,后来发现可以通过开启binlog来解决

  1. 首先查看binlog是否打开

要查看mysql的binlog是否处于打开状态,默认情况下是关闭的

mysql> show variables like 'log_%';
  1. 配置并打开binlog

在win环境下首先要找到配置文件my.ini文件,路径为C:Program FilesMySQLMySQL Server 5.5。
不过经过本人测试,在实际情况中并不一定如此,有可能在C:ProgramDataMySQLMySQL Server 5.5中,大家可以自己尝试
打开配置文件后在[mysqld]中,务必看清楚实在[mysqld]下添加下面语句

log-bin=C:/Mysql-binlog/mysql-bin

上面一段可以翻译为,打开binlog,并且把日志文件存于C:/Mysql-binlog文件夹下(前提是必须存在Mysql-binlog这个文件夹,可以事先新建好,名字随意)并且存储为mysql-bin文件
这个路径大家可以自己修改但是最后的mysql-bin不能省略

设置完保存后,进行重启,在win下退出mysql后在DOS界面可以依次执行

net stop mysql
net start mysql

再次查看binlog是否打开,并且可以前往文件夹查看日志文件

  1. 如何自动清理binlog文件呢?

首先可以在mysql中输入

mysql> show variables like 'expire_logs_days';
Variable_nameValue
expire_logs_days0

默认情况值为0,不会自动清除,然后进行修改,输入
mysql> set global expire_logs_days=50;

将自动清理天数修改为50天
Variable_nameValue
expire_logs_days50

设置之后不会立即清除,触发条件是:
**binlog大小超过max_binlog_size
手动执行flush logs
重新启动时(MySQL将会new一个新文件用于记录binlog)**
如果不想重启,并且现在启用需要执行

mysql> flush logs;

tag(s): none
show comments · back · home
Edit with Markdown