Почему не существует журнала медленных запросов MySQL?

Почему не существует журнала медленных запросов MySQL?

Сегодня я искал на своем сервере CentOS журнал медленных запросов MySQL, но не смог его найти. Я даже провел тест "SELECT SLEEP(2)" в надежде создать этот файл. Обратите внимание, я не очень разбираюсь в серверах, поэтому любая помощь будет оценена по достоинству.

 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

Как вы видите, путь показывает: /var/log/mysql_slow_queries.log -- но этот файл нигде не находится. Однако я нашел mysql.query.log и mysqld.log в каталоге. Почему мой файл MySQL Slow Queries не существует?

решение1

После внесения изменений в my.cnfфайл вам необходимо перезапустить службу MySQL. Не уверен, какая у вас система, но обычно service mysqld restartэто работает или service mysql restart— просто посмотрите в /etc/init.d/.

Кроме того, убедитесь, что файл создан и доступен на диске:

touch /var/log/mysql_slow_queries.log
chown mysql:mysql /var/log/mysql_slow_queries.log

Кроме того, время не так важно в базах данных, как запросы без индексов. Рассмотрите возможность добавления следующего в ваш my.cnf. Конечно, перезапустите MySQL, как только вы это сделаете:

log-queries-not-using-indexes

решение2

нажмите /var/log/mysql_slow_queries.log

chown mysql:mysql

и перезапустите службу MySQL

mysql -u -pmypassword

выберите сон(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);

решение3

добавьте slow_query_log=1в [mysqld]раздел my.cnfи перезапустите mysqld.

решение4

Обратите внимание, что в Centos 7 по умолчанию и без перезапуска MySQL журнал медленных запросов включен в этой позиции:

/var/lib/mysql/$HOSTNAME.log

Ознакомьтесь с другими ответами, чтобы узнать, как применить постоянную конфигурацию и как переместить ее в другое положение.

Связанный контент