清除mysql的log-bin日志的方案

前一阵子工作项目上的事情忙的焦头烂额,最近要进行部门调整将要去做新的项目。又要学习很多新的知识了,还是很兴奋激动的。今天下班回来查看了一下VPS状态,发现VPS的空间只剩下了1G多!第一反应是被入侵了,但是看了一下log并没有发现什么异常的登录,加上平时基本都是用私钥免密码登录的VPS,别入侵的可能也不是很大。那我就很疑惑了,因为系统文件占用应该也就3G多,我平时并没有在VPS放过什么大文件,不应该一下子少那么多空间。于是开始一番du查找终于找到了罪魁祸首!原来是mysql的log文件导致的。

装mysql并运行一段时间后,在mysql目录下出现一堆类似mysql-bin.000***,从mysql-bin.000001开始一直排列下来,而且占用了大量硬盘空间,高达十几个G.。原来mysql-bin.000001、mysql-bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。 这些形如mysql-bin.00001的文件主要是用来做什么的呢? 1、数据恢复

如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。

2、主从服务器之间同步数据

主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。
3、清除办法

运行 /usr/local/mysql/bin/mysql -u root -p 登录执行:
reset master;

如果你只有一个mysql服务器,在/etc/ 下面找到my.cnf文件vim /etc/my.cnf把里面的

#log-bin=mysql-bin
#binlog_format=mixed

这两行注释掉,然后将mysql下的var目录中的这些日志文件全部删除,重启mysql服务即可。

但是如果你设置了主从服务器,那么就需要做以下操作了。

A:在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
B:使用SHOW MASTER LOGS获得主服务器上的一系列日志。
C:在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。

D:清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步。 简单地说,这些MySQL目录下的形如mysql-bin.000***的文件时MySQL的事务日志。 删除复制服务器已经拿走的binlog是安全的,一般来说网络状况好的时候,保留最新的那一个足以。

注意:删除mysql-bin日志(mysql-bin.00001)导致mysql无法启动,这个肯定是没有修改配置文件了这会有问题的。

编辑my.cnf(一般在etc目录下)
将log-bin=mysql-bin 注释掉就OK。(前面加#号)
如果还不行请把binlog_format=mixed这行也注释掉!
启动mysql:/etc/init.d/mysql start
再解除刚才的注释,重新启动mysql即可:/etc/init.d/mysql restart

时间: 2024-11-01 15:53:20

清除mysql的log-bin日志的方案的相关文章

mysql 开启慢查询 如何打开mysql的慢查询日志记录_Mysql

mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢? 其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码: 复制代码 代码如下: log-slow-queries=/var/lib/mysql/slowquery.log long_query_time=2 注: log-slow-queries

利用mysql general log日志找出查询次数最多的SQL句子

查询最多的sql语句 开启general log   mysql> show  variables like '%general%'; +------------------+-------------------------------------+ | Variable_name | Value | +------------------+-------------------------------------+ | general_log | OFF | | general_log_fi

MySQL中Binary Log二进制日志文件的基本操作命令小结_Mysql

MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与master同步. 1.开启binary log功能      需要修改mysql的配置文件,本篇的实验环境是win7,配置文件为mysql安装目录\MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可  eg: [mysqld] ...... log_bin

mysql中slow query log慢日志查询分析

一.慢查询日志 配置 开启慢查询日志 , 配置样例: /etc/mysql/my.cnf [mysqld] log-slow-queries 在 my.cnf 配置文件中增加上述配置项并重启 mysql 服务,这时 mysql 慢查询功能生效.慢查询 日志将写入参数 DATADIR (数据目录:/var/lib/mysql) 指定的路径下,默认文件名是 host_name-slow.log . 和错误日志.查询日志一样,慢查询日志记录的格式也是纯文本,可以被直接读取.下例中演示了慢查询日志的设置

如何在MySql中记录SQL日志

SQL server有一个sql profiler可以实时跟踪服务器执行的SQL语句,这在很多时候调试错误非常有用.例如:别人写的复杂代码.生产系统.无调试环境.无原代码... ...   查了一下资料,My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:   1  配置my.ini文件(在安装目录,linux下文件名为my.cnf)     查找到[mysqld]区段,增加日志的配置,如下示例: [mysqld] log="C:/temp/mysql.

mysql的log文件种类

在数据库系统中,日志系统重要的组成部分.他用于恢复数据库,和保证数据库原子操作的重要部分. Mysql的日志文件种类比较多,有的日志文件记录了mysql的服务状态以及mysql在工作中产生的系统信息,我们利用这些信息可以更方便的对mysql服务进行运维,但是有的日志文件如果我们进行了不正确的配置将对mysql的服务器主机造成不良的后果,下面我们就来看看mysql有哪些日志文件以及他们的各自的作用. Mysql相关的日志文件,主要有两大类:事务日志和事件日志: 事务日志: 简介: 详细的记录了在什

MySQL下高可用故障转移方案MHA的超级部署教程_Mysql

MHA介绍MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA,可避免主从一致性问题,节约购买新服务器的费用,不影响服务器性能,易安装,不改变现有部署.      还支持在线切换,从当前运行master切换到一个新的master上面,只需要很短的时间(0.5-2秒内),此时仅仅阻塞写操作,并不影响读操作,便于主机硬件维护.   在有高可用,数据一致性要求的系统上,MHA 提供了有用的功能,

MySQL 自动清理binlog日志的方法_Mysql

说明: 开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错. 使用下面方法可以安全清理binlog日志 一.没有主从同步的情况下清理日志 mysql -uroot -p123456 -e 'PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)'; #mysql 定时清理5天前的binlog mysql -u root

MySQL的6种日志详解

MySQL有6种日志,监控数据库系统的时候必须知道 select日志 slow select日志 变更日志 二进制变更日志(binlog) 告警日志 错误日志. 可以在my.cnf中配置 参数 说明 log 文本select日志,记下所有的MySQL的命令操作, log-update 文本变更日志 log-bin 这个都知道了,数据库复制的时候必备 binlog_cache_size 临时存放某次事务的SQL语句缓冲长度 max_binlog_cache_szie 最大二进制Cache日志缓冲区