MySQL数据库---日志管理

文章目录

  • 前言
  • 一、日志
    • 1.mysql的日志类型
      • 1.1 错误日志
      • 1.2 通用查询日志
      • 1.3 二进制日志(binlog)
      • 1.4 中继日志
      • 1.5 慢查询日志
      • 配置
    • 2.查看日志
      • 2.1 查看错误日志是否开启
      • 2.2 查看通用查询日志是否开启
      • 2.3 查看二进制日志是否开启
      • 2.4 查看慢查询日功能是否开启
      • 2.5 查看慢查询时间设置
      • 2.6 在数据库中设置开启慢查询的方法


前言

备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。而备份、恢复中,日志起到了很重要的作用


一、日志

  • MySQL 的日志默认保存位置为/usr/local/mysql/data
  • MySQL的配置文件在/etc/my.cnf

1.mysql的日志类型

编辑配置文件
vim /etc/my.cnf

1.1 错误日志

  • 用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
[mysqld]	//添加
log-error=/usr/local/mysql/data/mysql_error.log     #指定日志的保存位置和文件名

1.2 通用查询日志

  • 用来记录MySQL的所有连接和语句,默认是关闭的
[mysqld]	//添加
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log

1.3 二进制日志(binlog)

  • 用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启
[mysqld]	//添加
log-bin=mysql-bin      
或
log_bin=mysql-bin

1.4 中继日志

  • 一般情况下它在Mysql主从同步(复制)、读写分离集群的从节点开启。主节点一般不需要这个日志

1.5 慢查询日志

  • 用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便提醒优化,默认是关闭的
[mysqld]	//添加
s1ow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5        #设置超过5秒执行的语句被记录,缺省时为10秒

配置

log-error=/usr/local/mysql/data/mysql_error.log
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
log-bin=mysql-bin
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5

在这里插入图片描述

  • 配置保存后,重启mysql
systemctl restart mysqld

2.查看日志

  • 登陆mysql
mysql -uroot -P123456

2.1 查看错误日志是否开启

[root@c7-2 ~]#cd /usr/local/mysql/data/
[root@c7-2 /usr/local/mysql/data]#ll
总用量 188480
.....
-rw-r----- 1 mysql mysql     4713 10月 25 20:25 mysql_error.log
.....

2.2 查看通用查询日志是否开启

mysql> show variables like 'general%';
+------------------+-----------------------------------------+
| Variable_name    | Value                                   |
+------------------+-----------------------------------------+
| general_log      | ON       //已开启                               |
| general_log_file | /usr/local/mysql/data/mysql_general.log |
+------------------+-----------------------------------------+
2 rows in set (0.01 sec)

2.3 查看二进制日志是否开启

mysql> show variables like 'log_bin%'; 
+---------------------------------+---------------------------------------+
| Variable_name                   | Value                                 |
+---------------------------------+---------------------------------------+
| log_bin                         | ON    //已开启                                |
| log_bin_basename                | /usr/local/mysql/data/mysql-bin       |
| log_bin_index                   | /usr/local/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                   |
| log_bin_use_v1_row_events       | OFF                                   |
+---------------------------------+---------------------------------------+
5 rows in set (0.00 sec)
  • 二进制日志开启后,重启mysql 会在目录中查看到二进制日志
    在这里插入图片描述
  • 启二进制日志时会产生一个索引文件及一个索引列表-

2.4 查看慢查询日功能是否开启

mysql> show variables like '%slow%';
+---------------------------+--------------------------------------------+
| Variable_name             | Value                                      |
+---------------------------+--------------------------------------------+
| log_slow_admin_statements | OFF                                        |
| log_slow_slave_statements | OFF                                        |
| slow_launch_time          | 2                                          |
| slow_query_log            | ON  //已开启                                       |
| slow_query_log_file       | /usr/local/mysql/data/mysql_slow_query.log |
+---------------------------+--------------------------------------------+
5 rows in set (0.00 sec)

在这里插入图片描述

2.5 查看慢查询时间设置

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

2.6 在数据库中设置开启慢查询的方法

mysql> set global slow_query_log=ON;

你可能感兴趣的:(数据库应用,mysql,数据库,database)