MySql8.0 打开慢查询日志的方法

不知何时起,mysql的慢查询日志打开方式. 无需到服务器上重启服务器进行配置.
只需要在查询分析器里面执行命令就可以了
windows 系统下一定要给文件夹分配权限.
注意双斜杠, 代表一个斜杠,

好像还可以把日志写入一个表中,然后直接远程查询就可以了.
下面就是可以把慢查询的sql 日志写入一个表的使用方法


Show variables like '%slow_query%'; -- 可以用这个查询所有的变量

//第一步
set global log_output='TABLE'; -- 开启慢日志,纪录到 mysql.slow_log 表
set global long_query_time=2; -- 设置超过2秒的查询为慢查询
set global slow_query_log='ON';-- 打开慢日志记录

//第二步 运行一下比较慢的功能,执行下面的语句
select convert(sql_text using utf8) sql_text from mysql.slow_log -- 查询慢sql的 日志
//第三步 记得关上日志
set global slow_query_log='OFF'; -- 如果不用了记得关上日志

下面是清除日志的方法,实际上就是删掉老表重新建一个新的

SET GLOBAL slow_query_log = 'OFF';

ALTER TABLE mysql.slow_log RENAME mysql.slow_log_drop;


 CREATE TABLE `mysql`.`slow_log` (
  `start_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  `user_host` mediumtext NOT NULL,
  `query_time` time(6) NOT NULL,
  `lock_time` time(6) NOT NULL,
  `rows_sent` int(11) NOT NULL,
  `rows_examined` int(11) NOT NULL,
  `db` varchar(512) NOT NULL,
  `last_insert_id` int(11) NOT NULL,
  `insert_id` int(11) NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `sql_text` mediumblob NOT NULL,
  `thread_id` bigint(21) unsigned NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';


 

SET GLOBAL slow_query_log = 'ON';

DROP TABLE mysql.slow_log_drop; 
### MySQL 8.0 查询日志方法及配置教程 #### 配置查询日志功能 在 MySQL 中,查询日志记录了服务器接收到的所有 SQL 语句。启用此功能可以帮助开发者调试应用程序或分析某些特定行为。要开启查询日志,需修改 `my.cnf` 或 `my.ini` 文件中的参数设置。 以下是具体操作步骤: 1. **编辑配置文件** 找到 MySQL 的配置文件(通常位于 `/etc/mysql/my.cnf` 或 Windows 下的安装路径下的 `my.ini`),并添加以下内容来启用通用查询日志: ```ini general_log = ON general_log_file = /path/to/your/logfile.log ``` 这里的 `general_log_file` 参数指定了日志文件存储的位置和名称[^2]。 2. **重启服务** 修改完成后,需要重新启动 MySQL 服务以使更改生效: ```bash sudo systemctl restart mysql ``` 3. **动态调整(可选)** 如果不想重启服务,也可以通过命令行动态开启查询日志: ```sql SET GLOBAL general_log = 'ON'; SET GLOBAL log_output = 'TABLE'; -- 将日志写入表而非文件 ``` 此外,可以通过执行以下命令查看当前状态: ```sql SHOW VARIABLES LIKE 'general_log%'; ``` #### 查看查询日志数据 当启用了查询日志后,可以按照如下方式访问其内容: - **如果日志被保存为文件** 使用任何文本编辑器打开指定的日志文件即可读取其中的内容。例如: ```bash cat /path/to/your/logfile.log ``` - **如果日志被保存至数据库表中** 日志会被存放在名为 `mysql.general_log` 的表里。可通过以下 SQL 命令检索这些条目: ```sql SELECT * FROM mysql.general_log; ``` 需要注意的是,默认情况下该表可能非常庞大,因此建议定期清理以免占用过多磁盘空间。 --- ### 性能注意事项 尽管查询日志对于诊断问题很有帮助,但它会对系统性能造成一定影响,尤其是在高负载环境下。因此,在生产环境中应谨慎使用,并仅限于短期监控目的[^4]。 另外,慢查询日志作为另一种重要的审计工具,专注于捕捉那些耗时较长的操作。关于它的详细介绍,请参阅相关内容[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值