MySQL日志

日志类型

日志文件计入文件中信息类型
错误日志启动、运行、停止时出现的问题
查询日志记录建立客户端连接和执行语句
二进制日志记录所有更改数据语句。用于恢复和及时点恢复
慢日志执行时间超过long_query_time所有查询/不使用索引的查询
事务日志记录InnoDB等支持事务的存储引擎执行事务时产生的日志

错误日志

记录内容

1.服务器启动/关闭过程中信息
2.服务器运行过程中错误信息
3.事件调度运行一个时间时产生的信息
4.在服务器上启动服务器进程产生信息

定义

在配置文件中(/etc/my.cnf)用log-error[=file_name]指定mysql保存错误日志文件的位置
1.配置文件中没有log-error,错误日志将在终端输出
mysql配置文件
在这里插入图片描述
查看当前错误日志文件位置

mysql> show variables like "%log_error%";
+---------------------+--------------+
| Variable_name       | Value        |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| log_error           | stderr       |
| log_error_verbosity | 3            |
+---------------------+--------------+
3 rows in set (0.00 sec)
在终端输出

2.配置文件中只有log-error,用host_name.err,并在数据目录中写入日志文件
在这里插入图片描述

mysql> show variables like "%log_error%";
+---------------------+----------------------------+
| Variable_name       | Value                      |
+---------------------+----------------------------+
| binlog_error_action | ABORT_SERVER               |
| log_error           | /var/run/mysqld/mysqld.err |
| log_error_verbosity | 3                          |
+---------------------+----------------------------+
3 rows in set (0.00 sec)

3.配置文件中只文件名
在这里插入图片描述

mysql> show variables like "%log_error%";
+---------------------+--------------+
| Variable_name       | Value        |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| log_error           | ./mysqld.err |
| log_error_verbosity | 3            |
+---------------------+--------------+
3 rows in set (0.00 sec)

使用flush.logs会产生新的错误日志

查询日志

相关变量

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

临时开启

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

查看查询日志变化
tail -f 不停读取和显示文件中最新内容,监视文件变化,实时监视效果

[root@localhost ~]# tail -f /var/lib/mysql/localhost.log
2022-04-17T01:11:58.715518Z	    2 Query	show tables
2022-04-17T01:12:09.012528Z	    2 Query	select *from score
2022-04-17T01:12:36.501340Z	    2 Query	show variables like "%general_log%"
2022-04-17T01:13:12.130441Z	    2 Query	select * from student
2022-04-17T01:13:27.211315Z	    2 Query	select name from student
2022-04-17T01:13:56.066529Z	    2 Query	set global general_log=OFF
/usr/sbin/mysqld, Version: 5.7.37 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
2022-04-17T03:06:19.486324Z	    2 Quit	
2022-04-17T03:09:17.356900Z	    3 Connect	root@localhost on  using Socket
2022-04-17T03:09:17.357146Z	    3 Query	select @@version_comment limit 1
2022-04-17T03:09:30.645102Z	    3 Query	show databases
2022-04-17T03:09:39.951767Z	    3 Query	SELECT DATABASE()
2022-04-17T03:09:39.952130Z	    3 Init DB	homework
2022-04-17T03:09:39.953480Z	    3 Query	show databases
2022-04-17T03:09:39.953902Z	    3 Query	show tables
2022-04-17T03:09:39.954197Z	    3 Field List	score 
2022-04-17T03:09:39.979367Z	    3 Field List	student 
2022-04-17T03:09:47.005675Z	    3 Query	select * from score

慢查询日志

内容
记录执行时间超过long_query_time的查询;
配置文件中
slow_query_log_file[=file_name],
1.若没有file_name值,默认主机名,后缀slow.log
2…只有文件名,不是绝对路径,文件写入数据目录中;

相关变量
mysql> show variables like "%slow_query_log%";
+---------------------+-----------------------------------+
| Variable_name       | Value                             |
+---------------------+-----------------------------------+
| slow_query_log      | OFF                               |
| slow_query_log_file | /var/lib/mysql/localhost-slow.log |
+---------------------+-----------------------------------+
2 rows in set (0.00 sec)
默认没有开启,为调优,建议开启

临时开启

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

二进制日志

内容
记录:insert,update,delete,replace,do,load data,select,truncate table

开启二进制日志

在这里插入图片描述
server_id必须是唯一的,一般为主机IP地址的后一位。

查看有哪些二进制文件
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       620 |
+------------------+-----------+
2 rows in set (0.00 sec)

查看当前二进制文件

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

产生新的二进制文件
1.手动刷新时会产生新的二进制文件

mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       667 |
| mysql-bin.000003 |       154 |
+------------------+-----------+
3 rows in set (0.00 sec)

2.重启服务之后

[root@localhost ~]# systemctl restart mysqld
mysql> show binary logs;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: homework

+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       667 |
| mysql-bin.000003 |       177 |
| mysql-bin.000004 |       154 |
+------------------+-----------+
4 rows in set (0.01 sec)

3.达到max_binlog_size值
在my.cnf中设定max_binlog_size=200M,表示二进制日志最大尺寸为200M,超过200M进行滚动。

查看二进制日志文件内容
[root@localhost ~]# mysqlbinlog /var/lib/mysql/mysql-bin.000002

在这里插入图片描述

删除二进制文件
mysql> purge master logs to 'mysql-bin.000002';
Query OK, 0 rows affected (0.00 sec)
mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000002 |       667 |
| mysql-bin.000003 |       177 |
| mysql-bin.000004 |       154 |
+------------------+-----------+
3 rows in set (0.00 sec)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值