MySQL日志类型简介



日志文件

选项

文件名

程序

说明

表名称

错误

--log-error

host_name.err

N/A

记录MySQL启动、关闭和在运行

过程中出现的一些错误信息(默认开启)

常规

--general_log

host_name.log

N/A

记录常规日志,select,ddl,dml,dcl语句

(一般默认不会开启)

general_log

慢速查询

--slow_query_log 

--long_query_time

host_name-slow. log

mysqldumpslow

记录查询比较慢的日志信息
(默认开启)

slow_log

二进制

--log-bin  

--expire-logs-days

host_name-bin.000001

mysqlbinlog

主要记录修改后的操作的日志,

备份恢复,高可用,主从复制用到
(默认开启)

审计

--audit_log

--audit_log_file

...

audit.log

N/A

(默认关闭)

 

MySQL错误日志配置及查看
配置方法:

[mysqld]
log-error=/data/mysql/mysql.log

查看配置方式

mysql> show variables like '%log%error%';

作用:
 -- 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。

 

一般查询日志
配置方法:

[mysqld]
general_log=on
general_log_file=/data/mysql/server2.log

查看配置方式:

mysql> show variables like '%gen%';

作用:
记录mysql所有执行成功的SQL语句信息,可以做审计用,但是我们很少开启。
 

二进制日志

  • 二进制日志都记录了什么?    
    - 已提交的数据记录,以event的形式记录到二进制文件中。
  • 二进制记录格式有哪些?     
    - row:行模式,即数据行的变化过程,上图中Age=19修改成    Age=20的过程事件。     
    - statement:语句模式,上图中将update语句进行记录。     
    - mixed:以上两者的混合模式。
  • 三总模式有什么优缺点?
    statement:记录sql语句,如果sql中存在now()等时间函数,通过bin-log恢复数据时,就会出现时间差
    row:记录的是数据行的变化的过程,数据量级比较大,但是安全性比较高。
  • binlog的作用     
    - 备份恢复、复制

MySQL默认为statement,log_bin为关闭状态

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

开启二进制日志

mysql> set sql_log_bin=0    #在会话级别修改为临时关闭(1为开启,0为关闭),当进行备份恢复时,先关闭

vi /etc/my.cnf
[msyqld]
log-bin=/data/mysql/mysql-bin  #在全局打开binlog
binlog-format=ROW 

设置二进制日志记录格式(建议是ROW):

配置文件中修改:
binlog-format=ROW

命令行修改
mysql> SET GLOBAL binlog_format = 'STATEMENT';
mysql> SET GLOBAL binlog_format = 'ROW';
mysql> SET GLOBAL binlog_format = 'MIXED';    

查看binlog设置 show variables like '%binlog%';

mysql> show variables like '%binlog%';
+-----------------------------------------+----------------------+
| Variable_name                           | Value                |
+-----------------------------------------+----------------------+
| binlog_cache_size                       | 32768                |
| binlog_checksum                         | CRC32                |
| binlog_direct_non_transactional_updates | OFF                  |
| binlog_error_action                     | IGNORE_ERROR         |
| binlog_format                           | ROW                  |
| binlog_gtid_simple_recovery             | OFF                  |
| binlog_max_flush_queue_time             | 0                    |
| binlog_order_commits                    | ON                   |
| binlog_row_image                        | FULL                 |
| binlog_rows_query_log_events            | OFF                  |
| binlog_stmt_cache_size                  | 32768                |
| binlogging_impossible_mode              | IGNORE_ERROR         |
| innodb_api_enable_binlog                | OFF                  |
| innodb_locks_unsafe_for_binlog          | OFF                  |
| max_binlog_cache_size                   | 18446744073709547520 |
| max_binlog_size                         | 1073741824           |
| max_binlog_stmt_cache_size              | 18446744073709547520 |
| simplified_binlog_gtid_recovery         | OFF                  |
| sync_binlog                             | 0                    | 
+-----------------------------------------+----------------------+
19 rows in set (0.01 sec)

#sync_binlog:1表示commit时写入binlog,0达到binlog-cache内存大小写入binlog (重要)

 

查看二进制信息

mysql> show binary logs;    #查看所有二进制信息
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       120 |
+------------------+-----------+
1 row in set (0.00 sec)

mysql> SHOW MASTER STATUS;    #查看当前正在使用的二进制信息
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

 

 

 

最后修改于 2019-08-12 09:54:17
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇