CentOS makinemde hangi sql komutlarının çalıştırıldığını görmek mümkün mü?


1

CentOS makinemde çalışan bir program satın aldım. PHP ile yazılmış. Bir MYSQL veritabanı kullanır.

Programın fonksiyonlarından biri yeni kullanıcıları kaydetmektir. Kullanıcıları eklemek için bir SQL sorgusu kullanır. Bu veritabanına kullanıcılar da ekleyebilecek bir python programı yazmak istiyorum, ancak hangi özellikleri ve tabloları eklediğini bilmiyorum (bu oldukça büyük bir veritabanı).

Bu programın MYSQL'e gönderdiği hangi sql sorgularını bir şekilde izlemek mümkün mü?

Yanıtlar:


3

Yapabileceğin iki yol var, daha basit (ve belki de yeterince iyi değil) ve aradığın şeyi% 100 verecek olan daha karmaşık bir yol.

  1. Daha basit olanı sadece SHOW FULL PROCESSLISTkomutları çalıştırırken sorguları tam zamanında aramaktır . Bu size sorguları gösterecektir, ancak eylem (aradığınız SQL sorgusu) nadiren yürütülürse, istediğiniz sonucu almak için uzun süre beklemek ve sık sık yukarıdaki komutu vermek zorunda kalacaksınız. Daha iyi bir yol var.

  2. MySQL'i günlüğe kaydetme etkinken başlatın, ardından tüm SQL sorgularını MySQL sunucusunun yeniden başlatılmasından görebileceksiniz. İşte sorun şu ki, günlük dosyası gerçekten büyük olabilir ve aradığınızı bulmak için deneyimsiz olanlar için zaman alıcı olabilir, ancak bu yaklaşım genellikle daha iyidir. Seçenek basit:

mysqld --log=name_of_log_file.log

Bu kadar basit.

Sadece bir uyarı: aradığınızı bulduğunuzda, MySQL'i yeniden başlatın, ancak bu kez veritabanını hızlandıracak ve sunucunuzdaki disk alanını boşa almayacak şekilde, günlüğe kaydetme devre dışı bırakıldığında.


Genel günlüğe kaydetmeyi etkinleştirdim ve günlük dosyası tam olarak aradığım şeyi üretti. Oldukça acısızdı. Yardımlarınız için teşekkürler ve zamanınızı boşa harcadığınız için üzgünüm. Sonuçta bu sadece bir RTFM vakasıydı.
Will

0

Hangi MySQL Sorgularının mysql'ye sahip herhangi bir platformda yapıldığını görmek için.

MySQL sorgusu aşağıdaki gibidir,

  • SHOW FULL PROCESSLIST Detaylı bilgi için.
  • SHOW PROCESSLIST şu anda işlenmekte olan sorgular için.

# mysqlTerminalde aç .

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

daha fazla dokümantasyon için show-processlist'e bakınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.