So melden Sie Fehler Abfragen in mysql?
Ich weiß, dass es general_log, protokolliert alle Abfragen, aber ich möchte, um herauszufinden, welche Abfrage hat einen Fehler und die Fehlermeldung erhalten. Ich habe versucht, läuft eine Fehler Abfrage auf Zweck, sondern meldet es sich wie eine normale Abfrage und melden nicht es mit Fehler. Irgendwelche Ideen?
InformationsquelleAutor Van Nguyen | 2010-04-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, das ist uralt mittlerweile, aber für jemand mit dem gleichen Problem, der landet hier von Google, hier ist meine zwei Cent.
Wenn Sie mithilfe der cli-client, können Sie leiten Sie einfach Ihren sterr in eine Datei, und klicken Sie dann durchsuchen.
InformationsquelleAutor Bryan Agee
Es gibt keine Funktion in MySQL zu tun.
Sie haben zu stick mit application-layer Protokollierung.
Ich weiß es nicht. Wie es scheint, sollte nicht allzu schwer zu implementieren. Vielleicht eine Trennung von Bedenken, die Sache (D. H. es ist die Verantwortung des Kunden, um die SQL-Anweisung ist richtig, und es ist kostenlos zu Protokoll Fehler, wie er will).
InformationsquelleAutor Lightness Races in Orbit
Ist es möglich, log-Fehler Abfragen mit der MariaDB Audit Plugin.
Beispielsweise für diese Abfragen
log scheint, wie diese:
Letzten Spalte ist der return-code. 0 ist Ok. Sonst - Fehler.
InformationsquelleAutor mnv
Obwohl diese Frage ist ziemlich alt, ich hoffe, es wird nützlich sein, um jemanden gesucht für die mysql-log-Fehler-Abfragen oder ähnliche Begriffe.
Nicht allzu langer Zeit habe ich auch benötigt, mysqld zu Protokoll nur fehlerhaft Abfragen. Ich fand, dass der mysql-proxy ermöglicht es Ihnen, das zu tun, und schrieb ein kleines LUA-Skript:
DDL benötigt für logging-Tabelle, passen
somedb
.mysql_error
zu wünschen ist, aber vergessen Sie nicht zu tun, also in den oben genannten LUA-Skript auch.Um das Skript zu verwenden, führen Sie
/path/to/mysql-proxy --proxy-lua-script=/path/to/mysql-proxy-log-error-queries.lua
oder wenn das fehlschlägt (>=v0.9)
/path/to/mysql-proxy --proxy-lua-script=/path/to/mysql-proxy-log-error-queries.lua --plugins=proxy
Den proxy läuft auf port
4040
standardmäßig zu testen:mysql -u username -p --host=127.0.0.1 --port=4040
und führen Sie einige fehlerhafte sql.
Wenn alles scheint in Ordnung zu sein legen Sie den port in Ihrem Antrag 4040 anstelle der tatsächlichen mysqld-port an und Sie haben mysql-Fehler die Protokollierung auf Datenbankebene.
Letzte Anmerkung: mysql-proxy ist beta. Verwenden Sie mit Vorsicht, denke ich. Läuft hier seit fast einem halben Jahr jetzt ohne Probleme, aber YMMV.
Ist es nicht ein performance-killer ? Ich denke, dass die Fehlerbehandlung auf client-Seite wäre gut
Es funktioniert. Super!!!
Gut zu hören, dass! 🙂
InformationsquelleAutor kon
so, du hast es falsch. Keine andere Idee ohne den code.
in PHP mache ich es auf diese Weise (vorausgesetzt, dass Sie mit dem mysql-Treiber):
protokolliert werden alle fehlerhaften Anfragen, ob Sie
log_errors
Einstellung auf (und Sie müssen)BEARBEITEN:
Ich sehe jetzt, Sie wollen die Globale Ebene der Protokollierung m nicht Anwendungsebene.
Kann aber application-level-passen Sie auch?
phpmyadmin ist single-user-Anwendung, also es brauchen keine Anmeldung.
Ich sehe nun, meine Antwort bearbeitet
Tut trigger_error schreiben in die mysql-log-oder php-log? Da ich schon shell-Skripte, die mysql verwenden, wie gut.
das ist php-Direktive. Es ist das schreiben in die standard-PHP-error-log.
InformationsquelleAutor Your Common Sense