ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

头歌实践教学平台:数据科学与大数据技术导论(十八4)

头歌实践教学平台:数据科学与大数据技术导论(十八4) 十八、MySQL-数据库管理第4关查看日志文件任务描述某大型电商网站在某次大型推广时段遇到了不能访问和速度很慢的错误运维经理推测经过初步分析要求你立即利用MySQL5.5的日志文件功能进行问题定位。本关任务掌握错误日志、慢查询日志和常规查询日志的使用方式相关知识如果你的学习能力较强或者有兴趣深入了解MySQL5.5的日志文件我们推荐你去看MySQL5.5的官方手册https://dev.mysql.com/doc/refman/5.5/en/server-logs.html本关中我们只选择最常用的日志文件进行讲解。MySQL5.5中提供一下日志来记录数据库的相关活动日志类型 写入日志的信息错误日志Error log 在启动运行或停止mysqld时遇到的问题常规查询日志General query log 建立了客户的客户关系和声明二进制日志Binary log 改变数据的语句也用于复制中继日志Relay log 从复制主服务器接收的数据更改慢查询日志Slow query log 查询花费了超过 long_query_time几秒的时间执行DDL日志元数据日志 元数据操作由DDL语句执行背景介绍我们首先在右侧命令行使用命令mysql -uroot -p123123 -h127.0.0.1登陆数据库然后使用以下SQL语句查询日志启用情况SHOW VARIABLES LIKE log_%;执行效果如下图从图中我们可以看到只有错误日志被默认启动错误日志存储位置为/var/log/mysql/error.log。图中的log_output是日志文件输出选项选项的值代表MySQL5.5存储日志文件的方式可以使用以下SQL语句设置日志文件存储方式SET GLOBAL log_outputoption;具体语义说明option参数有3个值分别是FILE,TABLE,FILE,TABLEFILE代表以文件形式存储TABLE代表以数据表形式存储FILE,TABLE代表以文件和数据表两种形式都进行存储。错误日志错误日志包含mysqld启动和关闭时间的记录。它还包含诊断消息如服务器启动和关闭期间以及服务器运行期间发生的错误警告和注释。错误日志只支持以文件的形式存储其存放位置可以通过以下命令查看SHOW VARIABLES LIKE %log_error%;执行效果如下图更改错误日志文件的存储位置或者名字都可以通过修改MySQL5.5配置文件实现在右侧命令行环境中MySQL5.5配置文件存放位置为/etc/mysql/my.cnf修改位置如下图修改之后必须重启数据库Linux或Ubuntu环境的重启命令如下service mysql restart/etc/init.d/mysql restart慢查询日志慢查询日志由SQL语句组成这些SQL语句花费了超过long_query_time几秒的时间才能执行在管理网站时如果网站性能突然下降可以开启慢查询日志查看哪些操作使性能下降。默认情况下慢查询日志没有被启动可通过以下SQL命令启动SET GLOBAL log_slow_queriesON;【注意】通过以上语句设置后在MySQL5.5服务重启后会失效如果想永久生效则需要修改MySQL5.5配置文件。查看慢查询日志是否启动、日志文件存放位置可以使用以下命令:SHOW VARIABLES LIKE %slow_query_log%;执行效果如下图long_query_time参数在MySQL5.5中默认设置为10秒其精度为微秒10的负6次方查看可以使用命令SHOW VARIABLES LIKE long_query_time;默认效果如下图设置long_query_time参数可以使用命令SET GLOBAL long_query_time秒数;秒数为要设置的秒数直接写数字应用示例1 SET GLOBAL long_query_time5;SHOW VARIABLES LIKE long_query_time;SHOW GLOBAL VARIABLES LIKE long_query_time;执行效果如下图虽然改变了long_query_time的值但是使用SHOW VARIABLES命令查看并没有改变这是因为SHOW VARIABLES命令查看的是本次连接的变量而SHOW GLOBAL VARIABLES变量查看的是全局变量。【注意】虽然全局的long_query_time参数值已经被改变但是对于本次连接并不生效必须重新连接才会生效。应用示例2 SET GLOBAL log_outputTABLE;SET GLOBAL log_slow_queriesON;SELECT SLEEP(15);SELECT * FROM mysql.slow_log;首先将日志输出方式设置为数据表即TABLE然后启动慢查询日志利用SLEEP函数执行一个慢查询mysql.slow_log数据表是慢查询日志存储的位置。执行效果如下图从图中可以看到慢查询日志记录的信息非常详细包括完整的查询语句。启动慢查询日志会对数据库性能有一定的影响。常规查询日志常规查询日志是数据库正在做什么的一般记录。服务器在客户端连接或断开连接时将信息写入此日志并记录从客户端接收到的每条SQL语句。默认情况下常规查询日志没有被启动可通过以下SQL命令启动SET GLOBAL general_logON;【注意】通过以上语句设置后在MySQL5.5服务重启后会失效如果想永久生效则需要修改MySQL5.5配置文件。查看慢查询日志是否启动、日志文件存放位置可以使用以下命令:SHOW VARIABLES LIKE %general_log%;执行效果如下图应用示例 SET GLOBAL log_outputTABLE;SET GLOBAL general_logON;SHOW databases;SELECT * FROM mysql.general_log;首先将日志输出方式设置为数据表即TABLE然后启动常规查询日志执行一条SQL语句mysql.general_log数据表是常规查询日志存储的位置。执行效果如下图从图中我们可以看出启动常规查询日志后所有的SQL语句都被记录下来。启动常规查询日志对数据库性能的影响更大所以一般只在怀疑客户端产生错误操作、想知道客户端到底进行了哪些操作时才启用。编程要求为了找到使网站性能变慢的操作请你首先完成以下设置将日志输出方式设置为文件和数据表都使用修改慢查询参数long_query_time为8秒【注意】用root用户身份登陆测试说明我们已经登录了MySQL你只需要在右侧代码窗口输入MySQL语句实现以上操作平台将自动编译你输入的MySQL语句。请注意语句的格式请不要删去注释信息成功通关后预计输出success-输出设置成功success-慢查询参数设置成功业精于勤荒于嬉。行成于思毁于随。——韩愈开始你的任务吧祝你成功如果你觉得这一关的内容对你有帮助请你在下面点赞。//请在下面输入将日志输出方式设置为文件和数据表都使用的MySQL语句/*********begin*********/SET GLOBAL log_outputFILE,TABLE;/********* end *********///请在下面输入修改慢查询参数long_query_time为8秒的MySQL语句/*********begin*********/SET GLOBAL long_query_time8;/********* end *********/有任何问题都可以随时关注私信
返回列表