视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
分享一些简介操作MySQL日志的方法
2020-11-09 19:53:43 责编:小采
文档


这篇文章主要介绍了操作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

    【相关教程推荐】

    1. mysql数据库图文教程

    2. MySQL 5.1参考手册下载

    3. bootstrap教程

    下载本文
    显示全文
    专题