我需要帮助诊断故障
我有一台开发服务器和一台生产服务器。它们的设置(大部分)相同。两者都是 Ubuntu Server 10.04 LTS 安装。
我在两台服务器上都启用了 MySQL 慢查询日志,它在开发服务器上可以正常工作,但在生产服务器上却不行。在开发服务器上,慢查询日志很快就填满了,但在生产服务器上,日志文件仍然是空的。
你知道我该如何诊断为什么它无法在生产中工作吗?是否有任何错误日志可能包含该信息?
中没有任何明显相关的东西/var/log/mysql/error.log
,并且/var/log/mysql/mysql-slow.log
实际上存在——它只是空的。
我的.cnf:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
谢谢您的指导。
答案1
我会检查 MySQL 服务器版本以获取要使用的正确参数,因为它们之间存在差异。
例如http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html
这表明log_slow_queries
从 5.1.29 版开始该功能已弃用,您需要使用slow_query_log = 1
来启用它,然后slow_query_log_file = /path/to/file.name
在 5.1.29 之前,您可以log_slow_queries = /path/to/file.name
指定将查询记录到何处。
在 5.1.12 和 5.1.29 之间,您可以使用任一版本。
可能是您的生产箱是 5.1.29 或更高版本,而您的开发箱是 5.1.29 之前的版本,因此可以理解您正在使用的选项,而生产箱不能......
答案2
你能具体说明一下什么是“不起作用”吗?是系统崩溃吗?选择未返回正确信息?表格未更新?
一般而言,工具包括:
解释语句(http://dev.mysql.com/doc/refman/5.0/en/explain.html)
显示进程列表(http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html)
常规查询日志(http://dev.mysql.com/doc/refman/5.0/en/query-log.html)
还有其他调查途径。