我今天在CentOS服务器上查找MySQL慢查询日志,但是没有find日志。 我甚至做了一个“SELECT SLEEP(2)”testing,希望能创build这个文件。 请注意,我不是非常精通服务器,所以任何帮助表示赞赏。
7 8 [mysql.server] 9 user=mysql 10 basedir=/var/lib 11 12 [mysqld] 13 long_query_time = 1 14 log_slow_queries=/var/log/mysql_slow_queries.log 15 log=/var/log/mysql.query.log 16 17 ## FINE TUNING ## 18 19 key_buffer = 16M 20 max_allowed_packet = 16M 21 thread_stack = 128K 22 thread_cache_size = 8 23 query_cache_limit = 1M 24 query_cache_size = 16M 25 26 [mysqld_safe] 27 log-error=/var/log/mysqld.log 28 pid-file=/var/run/mysqld/mysqld.pid 29 safe-show-databases
正如你所看到的path显示:/var/log/mysql_slow_queries.log – 但是这个文件没有find的地方。 但是我发现mysql.query.log和mysqld.log在目录中很好。 为什么我的MySQL慢查询文件不存在?
一旦对my.cnf文件进行了更改,就需要重新启动MySQL服务。 不知道你在什么系统,但通常service mysqld restart将工作或service mysql restart – 只要看看/etc/init.d/
另外,请确保该文件已在磁盘上创build并可用:
touch /var/log/mysql_slow_queries.log
chown -R mysql:mysql /var/log/mysql_slow_queries.log
另外,数据库中的时间不是那么重要,而是没有索引的查询。 考虑将以下内容添加到my.cnf 。 当然,重新启动MySQL一旦你做到了:
log-queries-not-using-indexes
touch /var/log/mysql_slow_queries.log
chown mysql:mysql
并重新启动您的MySQL服务
mysql -u -pmypassword
select睡眠(60);
cat /var/log/mysql_slow_queries.log
/usr/sbin/mysqld, Version: 5.5.28-log (Source distribution). started with: Tcp port: 3306 Unix socket: /var/run/mysql/mysql.sock Time Id Command Argument # Time: 130904 23:22:14 # User@Host: root[root] @ localhost [] # Query_time: 60.002284 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1378329734; select sleep(60);
将slow_query_log=1添加到my.cnf的[mysqld]部分,然后重新启动mysqld。