MySQL日志管理

目录

1、错误日志(The Error Log)

2、通用查询日志(The General Query Log)

2.1 临时开启

2.2 临时关闭

3、慢查询日志(The Slow Query Log)

3.1 设置永久开启

3.2 开启之后查询语句 

4、二进制日志(The Binary Log)

4.1 永久开启方法

4.2 mysqlbinlog读取需要的日志内容

4.3 查看有哪些二进制文件

4.4 查看当前使用的是哪个二进制文件

4.5 刷新日志方法

4.6 在数据库中查看二进制日志内容

4.7 二进制日志的管理

4.8 删除日志方法

4.9 设置日志保存天数


1、错误日志(The Error Log)

 详细解释(MySQL :: MySQL 5.7 Reference Manual :: 5.4.2 The Error Log)

mysql> show variables like 'log_error';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/mysqld.log |
+---------------+---------------------+
1 row in set (0.01 sec)

可根据修改/etc/my.cnf中的log-error来设置存放路径比如以下三种,如果没有给定存放路径MySQL会分配在哪里存放。

2、通用查询日志(The General Query Log)

详细参考(MySQL :: MySQL 5.7 Reference Manual :: 5.4.3 The General Query Log

mysql> show variables like 'general_log%';
+------------------+--------------------------+
| Variable_name    | Value                    |
+------------------+--------------------------+
| general_log      | ON                       |
| general_log_file | /var/lib/mysql/host1.log |
+------------------+--------------------------+
2 rows in set (0.00 sec)

2.1 临时开启

mysql> set global general_log=on;
Query OK, 0 rows affected (0.01 sec)

2.2 临时关闭

mysql> set global general_log=off;
Query OK, 0 rows affected (0.00 sec)

使用[root@host1 mysql]# tail -f host1.log
可以看到在mysql中的操作

3、慢查询日志(The Slow Query Log)

详细参考(MySQL :: MySQL 5.7 Reference Manual :: 5.4.5 The Slow Query Log

mysql> show global variables like 'slow_query%';
+---------------------+-------------------------------+
| Variable_name       | Value                         |
+---------------------+-------------------------------+
| slow_query_log      | OFF                           |
| slow_query_log_file | /var/lib/mysql/host1-slow.log |
+---------------------+-------------------------------+
2 rows in set (0.00 sec)
​
mysql> show global variables like 'long_query%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

3.1 设置永久开启

vim /etc/my.cnf添加以下三行内容

接着重启数据库

此时再查看发现value发生改变

3.2 开启之后查询语句 

mysqldumpslow 后跟日志路径

[root@host1 mysql]# mysqldumpslow /var/lib/mysql/host1-slow.log

4、二进制日志(The Binary Log)

mysql> show global variables like 'log_bin%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | OFF   |
| log_bin_basename                |       |
| log_bin_index                   |       |
| log_bin_trust_function_creators | OFF   |
| log_bin_use_v1_row_events       | OFF   |
+---------------------------------+-------+
5 rows in set (0.01 sec)

4.1 永久开启方法

配置/etc/my.cnf,在最后添加两行之后重启mysql

log_bin=mysql-bin
server_id=10
#id号自定

此时查看就出现了mysql-bin文件

[root@host1 mysql]# pwd
/var/lib/mysql
[root@host1 mysql]# ll mysql-bin.*
-rw-r-----. 1 mysql mysql 154 Apr 17 11:09 mysql-bin.000001
-rw-r-----. 1 mysql mysql  19 Apr 17 11:09 mysql-bin.index

4.2 mysqlbinlog读取需要的日志内容

[root@host1 mysql]# mysqlbinlog mysql-bin.000001

4.3 查看有哪些二进制文件

mysql> show binary logs;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: *** NONE ***
​
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       154 |
+------------------+-----------+
1 row in set (0.01 sec)

4.4 查看当前使用的是哪个二进制文件

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

4.5 刷新日志方法

当​刷新日志时会产生一个新的logs,并且此时使用最新的同时/var/lib/mysql也会产生新的mysql-bin

mysql> FLUSH LOGS;
Query OK, 0 rows affected (0.01 sec)

4.6 在数据库中查看二进制日志内容

4.7 二进制日志的管理

设置binlog
vim /etc/my.cnf
最后一行添加
max_binlog_size=200M
接着重启数据库

​这样就可以限制二进制日志最大尺寸为200M,超过200M后进行滚动。MySQL的滚动方式与其他日志不太一样,滚动时会创建一个新的编号大1的日志用于记录最新的日志,而原日志名字不会被改变。
每次重启MySQL服务,日志都会自动滚动一次。 

4.8 删除日志方法

二进制日志文件不能直接删除,因此是不可以直接使用rm等命令的。

PURGE { BINARY | MASTER } LOGS { TO 'Log_name' |
BEFORE datetime_expr }
删除所有日志reset master
指定编号删除日志 purge master logs to 'Log_name'

eg:删除日志2之前的

mysql> purge master logs to 'mysql-bin.000002';
Query OK, 0 rows affected (0.00 sec)

4.9 设置日志保存天数

vim /etc/my.cnf

在最后一行添加

expire_logs_days=7 #几天这里数字就写几

接着重启mysql

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值