Ich habe heute auf meinem CentOS-Server nach einem MySQL Slow Queries Log gesucht, konnte das Protokoll aber nicht finden. Ich habe sogar einen „SELECT SLEEP(2)“-Test durchgeführt, in der Hoffnung, diese Datei erstellen zu können. Beachten Sie, dass ich mich mit Servern nicht besonders gut auskenne, daher bin ich für jede Hilfe dankbar.
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
Wie Sie sehen, lautet der Pfad: /var/log/mysql_slow_queries.log – aber diese Datei ist nirgends zu finden. Ich habe jedoch mysql.query.log und mysqld.log problemlos im Verzeichnis gefunden. Warum existiert meine MySQL Slow Queries-Datei nicht?
Antwort1
Nachdem Sie die Änderungen an Ihrer Datei vorgenommen haben my.cnf
, müssen Sie den MySQL-Dienst neu starten. Ich bin nicht sicher, auf welchem System Sie sich befinden, aber normalerweise service mysqld restart
funktioniert es oder service mysql restart
– schauen Sie einfach in nach /etc/init.d/
.
Stellen Sie außerdem sicher, dass die Datei erstellt und auf der Festplatte verfügbar ist:
touch /var/log/mysql_slow_queries.log
chown mysql:mysql /var/log/mysql_slow_queries.log
Darüber hinaus ist die Zeit bei Datenbanken nicht so wichtig, sondern eher bei Abfragen ohne Indizes. Erwägen Sie, Folgendes zu Ihrem hinzuzufügen my.cnf
. Starten Sie MySQL natürlich neu, wenn Sie dies getan haben:
log-queries-not-using-indexes
Antwort2
berühren Sie /var/log/mysql_slow_queries.log
chown mysql:mysql
und starten Sie Ihren MySQL-Dienst neu
mysql -u -pmypassword
wähle sleep(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);
Antwort3
Fügen Sie slow_query_log=1
es dem [mysqld]
Abschnitt hinzu my.cnf
und starten Sie mysqld neu.
Antwort4
Beachten Sie, dass in Centos 7 das Protokoll für langsame Abfragen standardmäßig und ohne MySQL-Neustart an dieser Position aktiviert ist:
/var/lib/mysql/$HOSTNAME.log
In den anderen Antworten erfahren Sie, wie Sie Ihre persistente Konfiguration anwenden und an eine andere Position verschieben.