Ist es möglich zu sehen, welche SQL-Befehle auf meiner CentOS-Maschine ausgeführt werden?

Ist es möglich zu sehen, welche SQL-Befehle auf meiner CentOS-Maschine ausgeführt werden?

Ich habe ein Programm gekauft, das auf meiner CentOS-Maschine läuft. Es ist in PHP geschrieben. Es verwendet eine MySQL-Datenbank.

Eine der Funktionen des Programms besteht darin, neue Benutzer zu registrieren. Es verwendet eine SQL-Abfrage, um die Benutzer hinzuzufügen. Ich möchte ein Python-Programm schreiben, das auch Benutzer zu dieser Datenbank hinzufügen kann, aber ich weiß nicht, welche Eigenschaften und Tabellen es hinzufügt (es ist eine ziemlich große Datenbank).

Ist es irgendwie möglich, zu überwachen, welche SQL-Abfragen dieses Programm an MySQL sendet?

Antwort1

Es gibt zwei Möglichkeiten, wie Sie das machen können: eine einfachere (und vielleicht nicht gute genug) und eine kompliziertere, mit der Sie Ihr Ziel zu 100 % erreichen.

  1. Einfacher ist es, einfach nach Abfragen zu suchen, wenn diese mit SHOW FULL PROCESSLISTdem Befehl ausgeführt werden. Dadurch werden Ihnen Abfragen angezeigt, aber wenn die Aktion (die gesuchte SQL-Abfrage) selten ausgeführt wird, müssen Sie lange warten und den obigen Befehl oft eingeben, um das gewünschte Ergebnis zu erhalten. Es gibt auch einen besseren Weg.

  2. Starten Sie MySQL mit aktivierter Protokollierung. Anschließend können Sie alle SQL-Abfragen nach dem Neustart des MySQL-Servers sehen. Das Problem dabei ist, dass die Protokolldatei sehr groß sein kann und es für Laien zeitaufwändig sein kann, das Gesuchte zu finden. Dieser Ansatz ist jedoch im Allgemeinen besser. Die Option ist einfach:

mysqld --log=name_of_log_file.log

So einfach ist das.

Nur eine Warnung: Wenn Sie gefunden haben, wonach Sie gesucht haben, starten Sie MySQL neu, dieses Mal jedoch mit deaktivierter Protokollierung, da dies die Datenbank beschleunigt und keinen Speicherplatz auf Ihrem Server beansprucht.

Antwort2

Um zu sehen, welche MySQL-Abfragen auf einer Plattform mit MySQL ausgeführt werden.

Die MySQL-Abfrage lautet wie folgt:

  • SHOW FULL PROCESSLISTfür detaillierte Informationen.
  • SHOW PROCESSLISTfür aktuell in Bearbeitung befindliche Anfragen.

# mysqlIm Terminal öffnen .

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

Weitere Dokumentation finden Sie unterProzessliste anzeigen.

verwandte Informationen