简介操作MySQL日志的一些方法

我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的。这些是数据库的操作日志。它记录了我们平时使用的sql语句命令,即使这个sql语句没有被执行,也会被记录,它包括执行时间之类的都详细在案,其实 它的目的有两个:一是方便我们查错和恢复数据库;二是为了主从服务器之间同步数据用的,主从服务器上所有操作都记录在日志里,从服务器可以根据这些日志来进行相同的操作,确保主从两个同步。
查看mysql日志的命令:

#mysql -u user -p   //user代表你的mysql用户名

Enter password: (输入密码)        //输入密码后就进入mysql的控制台

mysql> show master logs;       //显示mysql日志文件
+------------------+-----------+
| Log_name       | File_size |
+------------------+-----------+
| mysql-bin.000010 | 63328652 |
+------------------+-----------+
1 row in set (0.06 sec)

也可以在mysql的命令模式下,输入以下命令:

mysql> show binary logs;        //查看二进制日志文件列表和大小
+------------------+-----------+
| Log_name     | File_size |
+------------------+-----------+
| mysql-bin.000010 | 63355376 |
+------------------+-----------+
1 row in set (0.00 sec)

MASTER和BINARY是同义词。

删除mysql 二进制日志:

第一种方法是针对单独的mysql服务器,不适合主从同步的。切记!当然,如果你确保自己的主从同步已经完成了,那么也可以使用这个命令,但是我还是不怎么建议的。

第一种方法:mysql>reset master;            //清空所有mysql所有的二进制日志文件

主从同步,建议用以下两种方法:

首先,我们要知道从mysql服务器是否在读取日志,或者在读取哪个日志。

在从属服务器上输入一下命令:

mysql>show slave hosts     //查看所有连接到master的slave的信息

mysql>show slave status;        //检查从服务器在读取哪个日志

下面第二种和第三种方法中,当从服务器正在读取你正在删除的日志时候,就会失效,并且会有报错。如果从属服务器没有读取日志,而你又删了它启动后要读取的日志,那么当它启动后就不会复制。所以,下面两种方法可以安全删除日志文件。

主从服务器清理日志操作步骤如下:

  • 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
  • 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
  • 在所有的从属服务器中判定最早的日志,这个是目标日志,如果所有的从属服务器是更新的,就是清单上的最后一个日志。
  • 清理所有的日志,但是不包括目标日志,因为从服务器还要跟它同步。

注意:最好做好你要删除的所有日志的备份,有备份,就不怕出错

第二种删除二进制日志的方法:

PURGE {MASTER | BINARY} LOGS TO 'log_name'

例子:

mysql>purge master logs to 'mysql-bin.000800';  //清楚mysql-bin.000800之前的二进制日志

第三种删除二进制日志的方法:

PURGE {MASTER | BINARY} LOGS BEFORE 'date'

例子:

mysql>purge master logs before '2012-12-22 12:12:12'; //删除2012-12-22 12:12:12这时间之前的二进制文件

第四种方法:就是修改my.cnf文件,在中[mysqld]中添加:

expire_logs_day=5       //设置日志的过期天数,过了指定的天数,会自动删除

第五种方法:禁止mysql的日志记录功能(单服务器)

修改my.cnf,注释掉下面两行:

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

然后重启mysql

(0)

相关推荐

  • MySQL Innodb表导致死锁日志情况分析与归纳

    案例描述在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志.两个sql语句如下:(1)insert into backup_table select * from source_table(2)DELETE FROM source_table WHERE Id>5 AND titleWeight<32768 AND joinTime<'$daysago_1week'teamUser表的表结构如下:PRIMARY

  • mysql日志文件在哪 如何修改MySQL日志文件位置

    MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考. 今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不了. 后来发现MySQL日志位是指定的: [root@localhost etc]# ps aux|grep mysqld root 11830 0.5 0.0 4524 1204 pts/0 S 03:03 0:00 /bin/sh /usr/bin/mys

  • 使用MySQL语句来查询Apache服务器日志的方法

    Linux 有一个显著的特点,在正常情况下,你可以通过日志分析系统日志来了解你的系统中发生了什么,或正在发生什么.的确,系统日志是系统管理员在解决系统和应用问题时最需要的第一手资源.我们将在这篇文章中着重讲解 Apache HTTP web server 生成的 Apache access 日志. 这次,我们会通过另类的途径来分析 Apache access 日志,我们使用的工具是 asql.asql 是一个开源的工具,它能够允许使用者使用 SQL 语句来查询日志,从而通过更加友好的格式展现相同

  • 简介操作MySQL日志的一些方法

    我们可以在mysql的安装目录下看到mysql的二进制日志文件,如mysql-bin.000***等,很多人都不及时的处理,导致整个硬盘被塞满也是有可能的.这些是数据库的操作日志.它记录了我们平时使用的sql语句命令,即使这个sql语句没有被执行,也会被记录,它包括执行时间之类的都详细在案,其实 它的目的有两个:一是方便我们查错和恢复数据库:二是为了主从服务器之间同步数据用的,主从服务器上所有操作都记录在日志里,从服务器可以根据这些日志来进行相同的操作,确保主从两个同步. 查看mysql日志的命

  • SpringBoot实现ORM操作MySQL的几种方法

    目录 1.第一种方式:@Mapper 2.第二种方式@MapperScan 3.第三种方式:Mapper文件和Dao接口分开管理 4.事务 使用mybatis框架操作数据,在springboot框架中集成mybatis 使用步骤: mybatis起步依赖:完成mybatis对象自动配置,对象放在容器中. <dependencies> <!-- web起步依赖--> <dependency> <groupId>org.springframework.boot&

  • PHP使用mysqli操作MySQL数据库的简单方法

    PHP的 mysqli 扩展提供了其先行版本的所有功能,此外,由于 MySQL 已经是一个具有完整特性的数据库服务器 , 这为PHP 又添加了一些新特性 . 而 mysqli 恰恰也支持了这些新特性. 一. 建立和断开连接 与 MySQL数据库交互时,首先要建立连接,最后要断开连接,这包括与服务器连接并选择一个数据库 , 以及最后关闭连接 .与 mysqli 几乎所有的特性一样 , 这一点可以使用面向对象的方法来完成,也可以采用过程化的方式完成. 1. 创建一个 mysqli 的对象 $_mys

  • 用C语言操作MySQL数据库的通用方法

    在我们的web应用中,虽然PHP.JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,在这篇文章中能够有所体现. 先看结构体: 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for S

  • .NET Core Dapper操作mysql数据库的实现方法

    前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头(手动下翻)一看究竟. 配置篇 俗话说得好,欲要善其事必先利其器.首先,我们要引入MySql.Data 的Nuget包.有人可能出现了黑人脸,怎么引入.也罢,看在你骨骼惊奇的份上,我就告诉你,两种方式: 第一种方式 Install-Package MySql.Data -Version 8.0.15

  • 使用Python操作MySQL的一些基本方法

    前奏 为了能操作数据库, 首先我们要有一个数据库, 所以要首先安装Mysql, 然后创建一个测试数据库python_test用以后面的测试使用 CREATE DATABASE `python_test` CHARSET UTF8 导入数据库模块 import MySQLdb 连接数据库 con = MySQLdb.connect(host="localhost", user="root", passwd="******",db="pyt

  • Shell脚本中执行sql语句操作mysql的5种方法

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \

  • Python操作MySQL数据库的三种方法总结

    1. MySQLdb 的使用 (1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. (2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python $ tar zxvf MySQL-python-*.tar.gz $ cd MySQL-python-* $ python setup.py buil

  • python简单实现操作Mysql数据库

    用python编写数据库的代码很方便,但是如果不想自己写sql语句,其实还有更多的讨巧办法.使用webpy的db库就是不错的一个选择.当然为了使用webpy的db,之前你还需要安装MySQLdb,其他的就不需要做什么了. 1.安装MySQLdb库 sudo apt-get install python-MySQLdb 2.安装webpy sudo apt-get install python-webpy 3.连接数据库 import web db = web.database(dbn='mysq

  • MYSQL日志的正确删除方法详解

    本文详细讲述了MYSQL日志的正确删除方法.分享给大家供大家参考,具体如下: 1.查找: MySQL> show binary logs; +------+---–+ | Log_name | File_size | +------+---–+ | mysql-bin.000001 | 150462942 | | mysql-bin.000002 | 125 | | mysql-bin.000003 | 106 | +------+---–+ 2.删除bin-log(删除mysql-bin.00

随机推荐