오늘 내 CentOS 서버에서 MySQL Slow Queries Log를 찾고 있었지만 로그를 찾지 못했습니다. 나는 이 파일이 생성되기를 바라면서 "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 느린 쿼리 파일이 존재하지 않는 이유는 무엇입니까?
답변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 -pmy비밀번호
수면(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);
답변3
mysqld 섹션 slow_query_log=1
에 추가 하고 다시 시작하십시오.[mysqld]
my.cnf
답변4
Centos 7에서는 기본적으로 MySQL을 다시 시작하지 않으면 느린 쿼리 로그가 다음 위치에서 활성화됩니다.
/var/lib/mysql/$HOSTNAME.log
영구 구성을 적용하는 방법과 이를 다른 위치로 이동하는 방법을 알아보려면 다른 답변을 참조하세요.