Mysql关闭general日志、binlog日志设置失效并自动删除

MySQL日志管理
本文介绍如何管理和优化MySQL数据库中的binary日志和general日志。针对binary日志,可以通过设置expire_logs_days参数来自动删除过期日志。对于general日志,可以根据需求选择开启或关闭,避免不必要的磁盘空间占用。
问题:
Mysql数据库由于业务原因,数据量增长迅速,general日志、binlog日志也增加较多,占用大部分磁盘空间。

解决方案:
出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作。
相关参数如下“expire_logs_days”、“general_log”:
1、binary日志(此变量值为可动态修改)
查看当前binary日志失效、自动删除的状态:
show global variables like '%expire_logs_days%';
select @@global.expire_logs_days;
如下:

expire_logs_days=0:表示,所有binary日志永久都不会失效,不会自动删除;

目前需求,只想保留七天日志,其余日志打包、压缩后备份至其他地方:
修改方式:
永久生效(重启后即生效):
修改配置文件my.ini(window系统环境下,若为Linux环境,则修改my.cnf文件)文件:
在[mysqld]标签内增加如下内容
expire_logs_days=7


即时生效(若不修改配置文件,则重启后失效):
set @@global.expire_logs_days=7;
再一次查询验证:
tips:此参数为整数型,默认为0(不删除),且最小值为0,最大值为99。



2、general日志(此变量值为可动态修改)
查看当前general_log状态:
select @@global.general_log;
结果为开启状态:



修改方式:
修改配置文件my.ini()文件:
在my.ini文件的[mysqld]标签中,增加如下内容后,重启:
general-log=0 #0:关闭;1:开启


修改后即时生效(若不修改配置文件,重启数据库后失效)
set @@global.general_log=0;  #  0:关闭;1:开启
set global gereral_log=0;
再次查看验证:

tips:此参数为布尔型,0:代表关闭;1:代表开启。可动态修改,默认关闭。
若数据库运行过程中,才发现general日志为开启状态,当业务不予许暂停情况下,依旧可以使用动态修改关闭,并且关闭后可对general日志进行物理文件的删除。


<think>嗯,用户问的是如何在MySQL 8中查看日志文件。我需要先回忆一下MySQL日志类型,然后根据不同的日志类型给出具体的查看方法。根据提供的引用资料,错误日志、二进制日志、慢查询日志和一般查询日志都是常见的类型。 首先,错误日志的位置可以通过SHOW VARIABLES LIKE 'log_error';来查看,这在引用1中提到过。用户可能需要知道如何找到这个日志文件的位置,特别是默认安装时的路径可能不同,比如在/var/log/mysqld.log或者根据配置文件的设置。 然后是二进制日志,引用2和3都提到了二进制日志,通常命名为hostname-bin,位置在data目录。用户可能需要用SHOW VARIABLES LIKE 'log_bin%';来确认是否启用以及路径。另外,查看二进制日志需要使用mysqlbinlog工具,如引用4中的示例命令,可能需要具体说明参数的使用。 慢查询日志和一般查询日志,引用3指出需要设置long_query_time和开启相关日志。用户可能需要知道如何开启这些日志查看它们的路径。比如设置slow_query_log=1和指定日志文件路径。 还要注意MySQL 8是否有什么变化,比如默认日志的开启状态或者路径的改变。但根据引用资料,基本方法应该适用,但可能需要强调在MySQL 8中的步骤是否不同,比如配置文件的位置或者命令是否有更新。 另外,用户可能需要知道如何动态设置这些日志参数,而不需要重启服务,比如使用SET GLOBAL命令。例如,开启慢查询日志可以动态设置,但可能配置文件中的设置更持久。 最后,是否需要权限?比如查看日志文件可能需要文件系统的访问权限,而使用SQL命令可能需要相应的数据库权限,如SUPER权限。 总结步骤应该是分类型说明,每种日志的查看方法,包括SQL查询变量定位路径,以及使用工具如mysqlbinlog。同时,给出示例命令,帮助用户理解操作步骤。可能还需要提醒用户关于权限和配置文件的位置,特别是在不同操作系统下的差异。</think>在MySQL 8中查看日志文件需要根据具体日志类型采用不同方法,以下是分步骤说明: ### 一、错误日志查看 1. **定位文件路径** 执行SQL命令查看错误日志路径: ```sql SHOW VARIABLES LIKE 'log_error'; ``` 输出示例: ``` +---------------+---------------------+ | Variable_name | Value | +---------------+---------------------+ | log_error | /var/log/mysqld.log | +---------------+---------------------+ ``` 该路径对应系统文件,可直接用`cat`或`tail`命令查看[^1]。 2. **动态修改路径(可选)** 在配置文件`my.cnf`中添加: ``` [mysqld] log-error=/new/path/mysql_error.log ``` ### 二、二进制日志查看 1. **确认日志状态和路径** ```sql SHOW VARIABLES LIKE 'log_bin%'; ``` 输出结果中的`log_bin_basename`表示二进制日志存储路径[^2]。 2. **使用mysqlbinlog工具解析** ```bash mysqlbinlog --no-defaults /var/lib/mysql/binlog.000001 ``` 可添加时间过滤参数: ```bash mysqlbinlog --start-datetime="2024-01-01 00:00:00" --stop-datetime="2024-01-02 00:00:00" binlog.000001 > output.txt ``` 支持将结果导出为文本文件[^4]。 ### 三、慢查询日志查看 1. **启用和配置** ```sql SET GLOBAL slow_query_log = 1; -- 动态开启 SET GLOBAL long_query_time = 2; -- 设置慢查询阈值(秒) SHOW VARIABLES LIKE 'slow_query_log_file'; -- 查看文件路径 ``` 2. **分析日志内容** 直接查看文件或使用`mysqldumpslow`工具分析: ```bash mysqldumpslow -s t /var/lib/mysql/slow.log ``` ### 四、通用查询日志 1. **开启日志记录** ```sql SET GLOBAL general_log = 'ON'; SHOW VARIABLES LIKE 'general_log_file'; ``` ### 五、性能架构日志MySQL 8增强特性) 通过`performance_schema`库查询: ```sql SELECT * FROM performance_schema.events_statements_summary_by_digest; ``` ### 注意事项 1. 文件路径权限需与MySQL运行用户匹配 2. 动态设置参数重启后会失效,需在配置文件中永久生效 3. 二进制日志需定期清理防止磁盘占满
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值