ITPub博客

首页 > 数据库 > MySQL > 【MySQL日志】MySQL日志文件初级管理

【MySQL日志】MySQL日志文件初级管理

原创 MySQL 作者:恩强Boy 时间:2021-01-05 17:16:27 0 删除 编辑

MySQL 日志文件初级管理

1.  MySQL 有以下日志文件

error log (错误日志)

bin log (二进制日志)

relary log (中继日志)

slow log (慢查询日志)

 

2.  error log (错误日志)

error log 用于记录数据库的错误信息,默认情况下是开启的。可以在客户端中查看 log_error 位置

mysql> show variables like 'log_error';

+---------------+---------------------+

| Variable_name | Value                 |

+---------------+---------------------+

| log_error      | /var/log/mysqld.log |

+---------------+---------------------+

1 row in set (0.00 sec)

可以编辑my.cnf 文件来修改错误日志位置

my.cnf 文件中添加以下内容:

log-error=/var/log/mysqld.log

3.  Binary log bin log )(二进制文件)

1)  设置binary log

二进制文件用于记录MySQL 数据库所有的数据修改操作,相当于 Oracle redo log 。在备份和恢复过程中起作用,默认是不开启的。

如要开启,需要在my.cnf 文件中添加以下内容:

log-bin=/usr/local/mysql/mysql-bin/slave

server-id=1   (这一行5.7 版本以后必须加)

注:mysql-bin 目录必须存在且属于 mysql 用户

2)  创建以下文件夹并重启MySQL

# mkdir /usr/local/mysql/mysql-bin

# chown -R mysql:mysql /usr/local/mysql/mysql-bin

# service mysqld restart

在客户端查看

mysql> show variables like 'log_bin%';

+---------------------------------+----------------------------------------+

| Variable_name                    | Value                                    |

+---------------------------------+----------------------------------------+

| log_bin                            | ON                                     |

| log_bin_basename                 | /usr/local/mysql/mysql-bin/slave        |

| log_bin_index                    | /usr/local/mysql/mysql-bin/slave.index   |

| log_bin_trust_function_creators    | OFF                                    |

| log_bin_use_v1_row_events          | OFF                                     |

+---------------------------------+----------------------------------------+

5 rows in set (0.00 sec)

上面显示的文件就是 bin log

3)  Binary log 的注意事项

- 重启 mysqld 会截断日志 , 产生新日志

- flush logs 会截断日志

- reset master 会删除所有的 bin log (注意不要用)

4)  删除部分bin log

-- 删除指定文件的 binlog ,会删除这个日志之前的所有 bin log

mysql>  purge binary logs to 'salve.000004';

-- 删除指定时间之前的 binlog

mysql> purge binary logs before '2020-03-20 16:10:14';

5)  查看bin log

-- 直接查看指定 bin log

# mysqlbinlog salve.000004


-- 根据时间查看指定 bin log

datetime:

# mysqlbinlog slave.000004 --start-datetime="2020-03-20 16:10:14 "

# mysqlbinlog slave.000004 --stop-datetime="2020-03-20 1 7 : 30 : 00"

# mysqlbinlog slave.000004 --start-datetime="2020-03-20 16:10:14 " --stop-datetime="2020-03-20 1 7 : 30 : 00"


-- 根据位置查看 bin log

position( 建议,比时间更精确 )

# mysqlbinlog mysql.000004 --start-position=260

-- 这里的 260 指的是 binlog 里面的 # at 260

# mysqlbinlog mysql.000004 --stop-position=520

# mysqlbinlog mysql.000004 --start-position=260 --stop-position=520

4.  slow query log (慢查询日志)

慢查询日志用于记录执行时间超过设定阈值的SQL ,默认是关闭的

1)  配置slow query log

需要在my.cnf 文件,添加以下内容 :

slow_query_log=1

slow_query_log_file=/usr/local/mysql/mysql-slow/slow.log

long_query_time=3

-- 定义超过 3 秒的查询为慢查询

2)  创建上述文件夹,并重启mysql

# mkdir /usr/local/mysql/mysql-slow

# chown -R mysql:mysql /usr/local/mysql/mysql-slow

# service mysqld restart

3)  查看slow log

mysql> show variables like 'slow%';

+---------------------+--------------------------------------+

| Variable_name        | Value                                 |

+---------------------+--------------------------------------+

| slow_launch_time     | 2                                     |

| slow_query_log       | ON                                    |

| slow_query_log_file | /usr/local/mysql/mysql-slow/slow.log |

+---------------------+--------------------------------------+

3 rows in set (0.00 sec)

 

 

---- end ----

 

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31529886/viewspace-2747693/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
勤奋,专注和练习

注册时间:2018-04-03

  • 博文量
    75
  • 访问量
    140879