首页 > 编程知识 正文

oracle日志文件满了,mysql配置文件路径

时间:2023-05-03 05:04:36 阅读:12363 作者:3643

MySQL抛出查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要参考依据,是一项非常实用的功能。

Mysql抛出查询日志的打开和配置非常简单,可以指定要记录的文件(或表),超过的时间阈值等可以记录在抛出SQL中。

老实说,与sqlserver跟踪或扩展事件相比,MySQL的配置总是非常清晰。

1 .打开滚动查询日志

通常,只需将slow_query_log=1配置文件添加到配置文件中。 也就是说,如果打开了滚动查询日志,但未指定slow_query_log_file,则会自动生成主机名为“‘slow'.log的文件。

show VARIABLES like '%slow_query% '

slow_query_log ON

sow _ query _ log _ filed 3360/PHP/wamp/sfdz/MySQL/MySQL5.6. 17/data/localhost-slow.log

慢速日志条目命令设置

设置全局slow _ query _ log=' on ';

2、默认情况下,记录慢速查询的时间阈值为10s

showvariableslike ' % long _ query _ time % '

默认情况下,在使用slow_query_log=1启动MySQL时,将打开一个具有主机名“‘slow'.log的默认文件,并记录超过10s的滚动查询

也可以显式指定低速查询的日志文件名(如果不存在,将自动创建)和记录低速查询的时间阈值)。 不是默认的10s。

修改的抛出日志超过了时间

设置全局long _ query _ time=1;

注意如果在配置文件中指定long_query_time,则不需要时间单位。 只需要一个值。 例如,1表示1s。 如果拥有时间单位,则无法启动服务。

是否打开未使用mysql索引的语句

set全局log _ queries _ not _ using _ indexes=on; 默认值为off

以下是记录在日志文件中的低速sql的示例

3、在表中记录低速查询日志

配置:要在表中记录慢速查询,必须添加log_output的配置

可以在window mysql.ini、liunx上设置为mysql.cnf

1、Windows上的MySQL配置文件为my.ini,通常位于安装目录的根目录中。

2、MySQL在Linux上的配置文件为my.cnf,一般放在/etc/my.cnf、/etc/mysql/my.cnf。 如果找不到,可以使用find命令进行搜索。

3、Linux rpm软件包上安装的MySQL不安装/etc/my.cnf文件

关于为什么MySQL在没有此文件的情况下也能正常启动和工作有两种说法。 第一种说法是,my.cnf是MySQL启动时的参数文件,可以没有。 此时,MySQL将使用内置的默认参数启动。 第二,MySQL将在启动时自动使用/usr/share/mysql目录中的my-medium.cnf文件。 这仅限于安装在rpm软件包中的MySQL。

解决方法:只需将/usr/share/mysql目录中的. cnf文件复制到/etc目录中,然后改名为my.cnf

slow_query_log=1

; sow _ query _ log _ file=/application/MySQL/data/localhost-slow.log

sow _ query _ log _ file=d :/PHP/wamp/sfdz/MySQL/MySQL5.6. 17/data/localhost-slow.log

log_output=table

long_query_time=1

mysql库下面是缺省的slow_log表,您可以直接将slow_query_log_file=slow_log记录在表中。

运行以下命令set global slow _ query _ log _ file=slow _ log

show VARIABLES like '%log_output% '

记录的slow sql如下所示: 您可以看到sql_text是二进制信息,而不是原始sql文本

select * from mysql.slow_log

用转换函数转换就可以了。

选择转换(SQL _ textusingutf8) sql_text from mysql.slow_log

关于低速查询记录在日志文件和表中的区别:

1 )滚动查询记录在日志文件和表中,记录本身差别不大。 在表中记录的情况下,滚动查询的执行时间信息微妙地不准确

2 )在表中记录滚动查询消息可以方便地查询,但因为是结构化数据,所以可能比在滚动查询日志文件(平面文本文件)中记录的速度慢一些) (个人推测)。 如果要记录到文件中,则必须使用mysqldumpslow工具进行分析。

3 )滚动查询不记录执行失败的查询。 例如,如果long_query_time设置为10(10秒),且一个查询超过10秒,则无法在MySQL抛出查询中记录此查询信息,因为其他原因导致执行失败。

20180701补充:

低速查询是否记录由于被阻止而超过低速查询中设置的阈值的sql? 答案是否定的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。