Сегодня я искал на своем сервере CentOS журнал медленных запросов MySQL, но мне не удалось найти журнал. Я даже сделал тест «ВЫБРАТЬ СОН (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 не существует?
После внесения изменений в 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
Добавить slow_query_log=1
к [mysqld]
раздел my.cnf
и перезапустите mysqld.
коснитесь /var/log/mysql_slow_queries.log
chown mysql: mysql
и перезапустите службу mysql
mysql -u -pmypassword
выберите сон (60);
кот /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);