MYSQL进阶-mysql日志-查询日志

这篇具有很好参考价值的文章主要介绍了MYSQL进阶-mysql日志-查询日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 查询日志

MySQL中的查询日志保存在文本文件中,能够记录MySQL中的所有数据操作。本节简单介绍如何开启、查看和删除MySQL中的查询日志。

1.1 开启查询日志

MySQL默认情况下没有开启查询日志,如果需要开启查询日志,则需要在my.cnf文件或者my.ini文件的[mysqld]选项下进行配置。例如,配置开启MySQL的查询日志:

[mysqld]
general_log = 1
general_log_file = /data/mysql/log/general_log/general_statement.log
log_output = FILE

各种配置说明如下:

·general_log:表示是否开启查询日志。此项设置为1或者不带任何值,都可以开启查询日志;设置为0或者在my.cnf文件或my.ini文件中没有配置此项,则不会开启查询日志。

·general_log_file:查询日志的文件目录,笔者这里配置的是日志的完整路径。

·log_output:表示日志的存储方式,可以有3种取值,TABLE表示将查询日志存储到数据表中;FILE表示将查询日志保存到文件中;NONE表示不保存日志信息到数据表和文件中。

注意:开启查询日志时,如果没有显示指定general_log_file选项和log_output选项的值,则MySQL会将查询日志保存到DATADIR选项指定的目录下(也就是数据库中的数据目录),默认的文件名称为host_name.log,其中,host_name为MySQL的主机名。

配置开启查询日志之前,首先查看/data/mysql/log/general_log目录下的文件信息。

[root@binghe150 ~]# 
[root@binghe150 ~]# ll /data/mysql/log/general_log/
total 0

当未配置MySQL的查询日志时,/data/mysql/log/general_log/目录下不存在任何文件。

开启查询日志配置完成后,需要重启MySQL服务才能生效。

[root@binghe150 ~]# service mysqld restart
Shutting down MySQL..... SUCCESS! 
Starting MySQL........ SUCCESS!

也可以在MySQL命令行中指定开启MySQL的查询日志。

mysql> SET GLOBAL general_log = 1;
Query OK, 0 rows affected (0.01 sec)
mysql> SET GLOBAL general_log_file = '/data/mysql/log/general_log/general_statement.log'; 
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL log_output = 'file';
Query OK, 0 rows affected (0.00 sec)

此时,再次查看/data/mysql/log/general_log/目录下的文件。

[root@binghe150 ~]# ll /data/mysql/log/general_log/
total 4
-rw-r----- 1 mysql mysql 547 Jan 17 11:39 general_statement.log

当开启查询日志配置完成后,MySQL会自动创建general_log_file选项指定的日志文件。

1.2 查看查询日志

如果log_output选项配置的是将查询日志保存到文件中,则日志文件的格式为纯文本格式,可以直接查看日志文件中的内容。

例如,向goods数据库下的t_goods_category数据表中插入一条数据,然后查询t_goods_category数据表中的数据,并查看查询日志中的内容。

(1)向数据表插入数据。

mysql> USE goods;
Database changed
mysql> INSERT INTO t_goods_category
    -> (id, t_category)
    -> VALUES
    -> (6, '食品');
Query OK, 1 row affected (0.01 sec)

(2)查看数据表数据。

mysql> SELECT * FROM t_goods_category;
+----+---------------------+
| id | t_category          |
+----+---------------------+
|  1 | 女装/女士精品       |
|  2 | 户外运动            |
|  3 | 男装                |
|  4 | 童装                |
|  5 | 运动                |
|  6 | 食品                |
+----+---------------------+
6 rows in set (0.01 sec)

(3)查看查询日志中的内容。

[root@binghe150 ~]# cat /data/mysql/log/general_log/general_statement.log
/usr/local/mysql/bin/mysqld, Version: 8.0.18 (binghe edition). started with:
Tcp port: 3306  Unix socket: /data/mysql/run/mysql.sock
Time                 Id Command    Argument
2020-01-17T03:39:34.706121Z         8 Query     SET GLOBAL general_log_file = '/data/mysql/log/
general_log/general_statement.log'
/usr/local/mysql/bin/mysqld, Version: 8.0.18 (binghe edition). started with:
Tcp port: 3306  Unix socket: /data/mysql/run/mysql.sock
Time                 Id Command    Argument
2020-01-17T03:39:49.435725Z         8 Query     SET GLOBAL log_output = 'file'
2020-01-17T03:53:06.278557Z         8 Query     SELECT DATABASE()
2020-01-17T03:53:06.278867Z         8 Init DB   goods
2020-01-17T03:53:49.479114Z         8 Query     INSERT INTO t_goods_category
(id, t_category)
VALUES
(6, '食品')
2020-01-17T03:54:04.014541Z         8 Query     SELECT * FROM t_goods_category

查询日志中记录了所有的SQL语句的信息。

1.3 删除查询日志

查询日志以纯文本文件的格式保存在服务器磁盘上。可以直接删除查询日志。如果需要重新建立查询日志,则需要在MySQL命令行中执行FLUSH LOGS命令或者在服务器命令行中执行mysqladmin flush-logs命令。

(1)删除查询日志。

rm -rf /data/mysql/log/general_log/general_statement.log

此时,查看/data/mysql/log/general_log目录下的文件。

[root@binghe150 ~]# ll /data/mysql/log/general_log
total 0

结果显示,查询日志文件已经被删除。

(2)刷新查询日志。

可以在MySQL命令行中执行如下命令刷新日志。

mysql> FLUSH LOGS;
Query OK, 0 rows affected (0.02 sec)

也可以在服务器命令行中执行如下命令刷新日志。

[root@binghe150 ~]# mysqladmin -uroot -p flush-logs
Enter password:

日志刷新成功,再次查看/data/mysql/log/general_log目录下的文件。

[root@binghe150 ~]# ll /data/mysql/log/general_log 
total 4
-rw-r----- 1 mysql mysql 519 Jan 17 12:33 general_statement.log

可以看到,已经重新创建了查询日志文件。

1.4 关闭查询日志

关闭查询日志就比较简单了,只需要在my.cnf文件或者my.ini文件的[mysqld]选项下,将general_log选项配置为0,或者删除general_log选项。

[mysqld]
general_log = 0

配置完成后,重启MySQL才能生效。

也可以在MySQL命令行中执行如下命令关闭查询日志。文章来源地址https://www.toymoban.com/news/detail-590565.html

mysql> SET GLOBAL general_log = 0;
Query OK, 0 rows affected (0.00 sec)

到了这里,关于MYSQL进阶-mysql日志-查询日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库学习【进阶篇】

    MySQL进阶篇已经更新完毕,点击网址查看👉:MySQL数据库进阶篇

    2024年02月10日
    浏览(33)
  • MySQL数据库基础之MySQL查询基础

    从今天开始,本系列内容就带各位小伙伴学习数据库技术 。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约【 1212】 字,不说废话,只讲可以让你学到技术、

    2024年02月06日
    浏览(52)
  • MySQL数据库——MySQL SELECT:数据表查询语句

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: 其中,各条子句的含义如下: {*|字段列名} 包含星号通配符的字段列表,表示所要查询字段的

    2024年02月05日
    浏览(70)
  • MySQL数据库,联合查询

    目录 1. 联合查询 1.1 内查询 1.2 外查询 1.3 自连接 1.4 子查询 1.5 合并查询 联合查询,简单的来讲就是多个表联合起来进行查询。这样的查询在我们实际的开发中会用到很多,因此会用 笛卡尔积 的概念。 啥是笛卡尔积?两张表经过笛卡尔积后得到的新表的列数是两表列数之和

    2023年04月23日
    浏览(72)
  • MySQL数据库,聚合查询

    目录 1、聚合查询 1.1聚合函数 1.1.1count函数 1.1.2sum函数 1.1.3avg函数 1.1.4max函数 1.1.5min函数 1.2group by子句 1.3having 聚合函数查询又叫函数查询,它是通过一些特定的函数根据需求来查询相关的信息,常见的聚合函数为: COUNT - 求总数,不包含某字段为null值 SUM - 求和,不包含某字

    2023年04月21日
    浏览(55)
  • 《MySQL高级篇》十五、其他数据库日志

    我们在讲解数据库事务时,讲过两种日志: 重做日志 、 回滚日志 。 对于线上数据库应用系统,突然遭遇 数据库宕机 怎么办?在这种情况下,定位宕机的原因就非常关键。可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信

    2024年02月14日
    浏览(57)
  • MySQL基础(三十六)其他数据库日志

    千万不要小看日志 。很多看似奇怪的问题,答案往往就藏在日志里。很多情况下,只有通过查看日志才能发现问题的原因,真正解决问题。所以,一定要学会查看日志,养成检查日志的习惯,对提升你的数据库应用开发能力至关重要。 MySQL8.0 官网日志地址:“ https://dev.mys

    2024年02月05日
    浏览(60)
  • 如何查看其他电脑的MYSQL数据库 mysql查询另一个ip数据库

    文章标签 如何查看其他电脑的MYSQL数据库mysql数据库服务器MySQL 文章分类 MySQL数据库 阅读数 143 1.如何通过IP访问MySQL数据库 1.1 改表法 1.2 授权法 2.MySQL数据库基本命令 2.1 基本命令 2.2 注释 2.3 2.4 实践操作 3 小结 1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候

    2024年01月21日
    浏览(66)
  • MYSQL进阶-mysql日志-查询日志

    MySQL中的查询日志保存在文本文件中,能够记录MySQL中的所有数据操作。本节简单介绍如何开启、查看和删除MySQL中的查询日志。 MySQL默认情况下没有开启查询日志,如果需要开启查询日志,则需要在my.cnf文件或者my.ini文件的[mysqld]选项下进行配置。例如,配置开启MySQL的查询日

    2024年02月16日
    浏览(39)
  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包