Protokollierung MySQL Abfrage auf Ubuntu
Muss ich-log-SQL in eine Datei, so kann ich später überprüfen, die SQL ausführen.
also öffnete ich opt/lampp/etc/my.cnf
und fügen Sie diese Zeilen
log_slow_queries
log_queries_not_using_indexes =1
long_query_time = 1
slow_query_log = 1
slow_query_log_file = "/opt/lampp/logs/query.log"
aber es hat nicht protokolliert die Abfragen, die noch nicht die query angelegt.log-Datei, so dass ich erstellt eine leere Datei mit dem Namen, aber trotzdem funktioniert es nicht.
Edit
[mysqld]
log_slow_queries
log_queries_not_using_indexes =1
long_query_time = 1
slow_query_log = 1
general_log = 1
slow_query_log_file = /opt/lampp/logs/query.log
general_log_file = "/opt/lampp/logs/query.log"
- Hast du MySQL neu starten?
- yup, habe ich neu gestartet & reloaded beiden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese werden nur log-slow-queries. Benötigen Sie die Allgemeine Protokoll-wenn Sie möchten, um zu sehen, alle Abfragen.
Beachten Sie, dass Sie müssen den server neu starten, damit dieses wirksam ist. Auch, Sie sollten nur diese Art der Protokollierung während der Prüfung, wie es verursacht Verlangsamung.
Als anderen Benutzer erwähnt, dies könnte ein Problem mit Berechtigungen. Prüfen Sie zunächst, welche Benutzer MySQL ausgeführt wird, als über
ps -u -p $(pgrep mysql)
. Wird der Benutzername erscheint in der ersten Spalte unterUSER
. In Ihrem Fall scheint es, dass der Benutzernobody
. Sie können die Standard-Gruppe des Benutzers übergroups nobody
. Dies sollte etwas drucken, wienobody : nogroup
.Zu korrigieren Sie die Berechtigungen auf die Datei, führen Sie einfach
chown nobody:nogroup /opt/lampp/logs/query.log
.show variables like 'general_log%';
um zu bestätigen, dass MySQL angewendet hat Ihre Einstellungen.mysql -hHOST_NAME -uUSER_NAME -DDATABASE_NAME -p
Sie in der Befehlszeile verbinden Sie.sudo apt-get install mysql-client
+1 for so much effort :)
ps u -p `pgrep mysql`
um zu bestätigen, dass MySQL ist in der Tat ausgeführt, wie der Benutzermysql
.mysql
läuft als Benutzernobody
eher alsmysql
. Versuchenchown nobody:nobody /opt/lampp/logs/query.log
, gefolgt von einem restart von MySQL.nobody
ist eigentlich ein Mitglied der Gruppenogroup
. Können Sie bestätigen, dass Sie übergroups nobody
. Dies sollte die Ausgabenobody : nogroup
. Versuchenchown nobody:nogroup /opt/lampp/logs/query.log
.Sicher sein, die richtige Berechtigung :
auch wenn ich den letzten habe , ich musste neu starten den mysql-service :
+1 for so much effort :)
Den Prozess wahrscheinlich nicht über die Berechtigung zum schreiben in dieses Verzeichnis. Stellen Sie sicher, dass MySQL hat die Berechtigung, dort zu schreiben, oder versuchen Sie, sich anzumelden, irgendwo weniger eingeschränkt.
Diese werden nur log-slow-queries. Benötigen Sie die Allgemeine Protokoll-wenn Sie möchten, um zu sehen, alle Abfragen.
Beachten Sie, dass Sie müssen den server neu starten, damit dieses wirksam ist. Auch, Sie sollten nur diese Art der Protokollierung während der Prüfung, wie es verursacht Verlangsamung.
Beachten Sie auch, dass mysql benötigt Berechtigungen für den Ordner zu, in meinem Fall habe ich geändert:
general_log_file = "/opt/lampp/logs/query.log"
für
general_log_file = "/var/log/mysql/query.log"
Aber ich habe mysql installiert, die aus software-center, ohne lampp, wenn ich führen Sie ls -l auf /var/log/, es zeigt
drwx------ 8 mysql mysql 4096 sep 25 23:22 mysql
PD:ich ändere die meine.cn Datei, und starten Sie mysql, ohne die Abfrage erstellen.log-Datei im angegebenen Pfad, mysql automatisch erstellt