查看: 114|回复: 0

[Mysql数据库] 修改mysql的binlog的位置

发表于 3 天前

最近项目上装的mysql服务,分配的磁盘空间太小了,导致binlog两天时间就能打满,这里记录下处理方式

mysql的binlog日志是一个很重要的日志,以事件形式记录了所有的DDL和DML(除了数据查询语句)语句,还包含执行的消耗的时间,在数据丢失的紧急情况下,我们可以利用binlog日志功能进行数据恢复。

1、问题上面说了,默认情况下binlog日志默认在/var/spool/mail/root路径下,磁盘空间比较小很快就被binlog打满了,为了保证项目上能正常使用,之前是维护人员手动清理和备份。在找到重新挂盘和修改binlog日志路径方法前,先给现场的配置下自动清理。

2、配置自动清理在my.cnf文件中,这个文件路径不知道的话执行mysql --help | grep 'Default options' -A 1,就会列出文件的路径来

修改配置文件,vi /etc/my.cnf,找到logbin的部分

路径因为测试环境没法挂盘,随便写了个路径,下面新建我们上面指定的文件夹mkdir -p /home/logs,然后重启mysql的时候报错了,经过一番折腾后,发现建的文件夹必须赋权限,泪目。。。chown -R mysql.mysql /home/logs

然后重启service mysql restart,去新建的目录下看看,已经有最新的日志了,我的截图日志比较多是因为我重启过好几次,每重启一次生成一次新的。

到这里更换路径和自动清理的工作就完成了。

下面列几个常用的命令

0、查看日志开启状态 show variables like 'log_%';

1、查看所有binlog日志列表 show master logs;

2、查看最新一个binlog日志的编号名称,及其最后一个操作事件结束点 show master status;

3、刷新log日志,立刻产生一个新编号的binlog日志文件,跟重启一个效果 flush logs;

4、清空所有binlog日志 reset master;

5、日志查看,因为是二进制文件没法用vi等打开,可以用mysql的mysqlbinlog打开,/usr/bin/mysqlbinlog /home/logs/mysql-bin.000001,当然每个人路径可能不一样,这个只能自己去找了。

我这是新日志,也没做什么操作,所以日志内容没什么东西,具体的日志内容解释,以及如何通过binlog恢复数据,以后有时间的话再写写。



回复

使用道具 举报