文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL有几种日志

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关MySQL有几种日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL主要的日志文件有以下几种。

错误日志
记录 MySQL 启动、运行和关闭时遇到的问题。
可以在 mysqld 后面加上参数 --log-error[=file_name]来指定路径,也可以在配置文件中增加log-error[=file_name]来指定路径。

一般查询日志
记录客户端连接和从客户端接收的SQL语句,当检查客户端错误的时候,这个日志非常有用。查询日志默认是关闭的。可以将查询日志记录到数据库的表中,也可以将其记录到日志文件中,
使用 --log-output=TABLE,FILE 这个参数。使用 --general_log[={0|1}] 来激活或关闭查询日志。可以通过 --general_log_file=file_name 指定日志的名称。

二进制日志
记录数据库的改变,例如表的创建,表中数据的变化或删除。这个日志有两种主要的用途:
(1) 在复制的时候,主节点将二进制日志传送给备节点,以供备节点应用。
(2) 某些数据恢复的时候需要使用二进制日志。
二进制日志不记录 SELECT 或 SHOW 这些不涉及数据改变的语句。如果想记录所有的 SQL 语句,可以使用查询日志。要打开二进制日志,可以在启动服务的时候加上 --log-bin[=base_name] 参数。

慢查询日志
记录执行时间超过 long_query_time 阀值的查询。还要配合另外一个参数——min_examined_row_limit,这个参数的含义是少于这个行数的查询将不会记录到缓慢查询日志。long_query_time 的单位是微秒。
默认,管理语句和没有使用索引的查询不会被记录。要打开慢查询日志,可以在启动服务的时候加上 --slow_query_log[={0|1}]参数,1代表打开日志,0代表关闭日志。
可以通过--slow_query_log_file=file_name参数来指定慢查询日志的名称。可以通过--log-output指定慢查询日志的路径。如果你不指定慢查询日志的名称,则 mysql 会将慢查询日志的名称指定为 host_name-slow.log。

log_queries_not_using_indexes决定不使用索引的查询是否被记录到慢查询日志
mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.00 sec)

DDL日志
记录DDL操作时的元数据,如DROP TABLE、ALTER TABLE语句。MySQL使用DDL日志来恢复中断的元数据操作。DDL日志存放在数据目录中,文件名为ddl_log.log,它是一个二进制日志,不要人为地编辑这个日志。
在使用日志时,可用FLUSH LOGS语句来刷新和重新开始所有日志文件;刷新前备份对应的日志。

shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory


日志的设置方法

[root@T400-kelong log]# vim /etc/my.cnf
..
#error log
log-error=/log/err.log
#general query log
log-output=FILE
general_log=1
general_log_file=/log/general_query.log
#bin log
server_id=100
log-bin=/log/product-bin
#slow query log
slow_query_log=1
slow_query_log_file=/log/slow_query.log

设置参数文件后,启动数据库

在数据库里面查看设置的参数文件
mysql> show variables like '%query_log%';
+------------------------------+---------------------+
| Variable_name                | Value               |
+------------------------------+---------------------+
| binlog_rows_query_log_events | OFF                 |
| slow_query_log               | ON                  |
| slow_query_log_file          | /log/slow_query.log |
+------------------------------+---------------------+
3 rows in set (0.00 sec)

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

mysql> show variables like '%log_bin%';
+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| log_bin                         | ON                     |
| log_bin_basename                | /log/product-bin       |
| log_bin_index                   | /log/product-bin.index |
| log_bin_trust_function_creators | OFF                    |
| log_bin_use_v1_row_events       | OFF                    |
| sql_log_bin                     | ON                     |
+---------------------------------+------------------------+
6 rows in set (0.00 sec)


mysql> show variables like '%error%';
+---------------------+--------------+
| Variable_name       | Value        |
+---------------------+--------------+
| binlog_error_action | ABORT_SERVER |
| error_count         | 0            |
| log_error           | /log/err.log |
| log_error_verbosity | 3            |
| max_connect_errors  | 100          |
| max_error_count     | 64           |
| slave_skip_errors   | OFF          |
+---------------------+--------------+
7 rows in set (0.00 sec)

查看生成的日志文件
[root@T400-kelong log]# ls
err.log  general_query.log  product-bin.000001  product-bin.000002  product-bin.index  slow_query.log

关于“MySQL有几种日志”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯