strace
Canlı MySQL / MariaDB sorgularını görmenin en hızlı yolu hata ayıklayıcı kullanmaktır. Linux'ta şunları kullanabilirsiniz strace
:
sudo strace -e trace=read,write -s 2000 -fp $(pgrep -nf mysql) 2>&1
Kaçan karakterlerin çok olduğundan, sen olabilir strace çıkış biçimlendirmek tarafından borulama (sadece eklemek |
aşağıdaki komutu yukarıdaki bu iki tek gömlekleri arasında):
grep --line-buffered -o '".\+[^"]"' | grep --line-buffered -o '[^"]*[^"]' | while read -r line; do printf "%b" $line; done | tr "\r\n" "\275\276" | tr -d "[:cntrl:]" | tr "\275\276" "\r\n"
Bu nedenle, yapılandırma dosyalarına dokunmadan, SQL sorgularını zaman kaybetmeden oldukça temiz görmelisiniz.
Açıkçası bu, aşağıda açıklanan (SQL sunucusunun yeniden yüklenmesini içeren) günlükleri etkinleştirmenin standart yolunun yerini almayacaktır.
dtrace
Sunucuya dokunmadan canlı MySQL sorgularını görüntülemek için MySQL problarını kullanın. Örnek komut dosyası:
#!/usr/sbin/dtrace -q
pid$target::*mysql_parse*:entry /* This probe is fired when the execution enters mysql_parse */
{
printf("Query: %s\n", copyinstr(arg1));
}
Yukarıdaki komut dosyasını bir dosyaya (gibi watch.d
) kaydedin ve çalıştırın:
pfexec dtrace -s watch.d -p $(pgrep -x mysqld)
Daha fazla bilgi edinin: DTracing MySQL ile çalışmaya başlama
Gibbs MySQL Spyglass
Bu cevaba bakınız .
Kütükler
İşte geliştirme önerileri için yararlı adımlar.
Bu satırları kendinize ~/.my.cnf
veya genelinize ekleyin my.cnf
:
[mysqld]
general_log=1
general_log_file=/tmp/mysqld.log
Yollar: /var/log/mysqld.log
veya /usr/local/var/log/mysqld.log
dosya izinlerinize bağlı olarak da çalışabilir.
ardından MySQL / MariaDB'nizi yeniden başlatın ( sudo
gerekirse ön ek ile ):
killall -HUP mysqld
Ardından günlüklerinizi kontrol edin:
tail -f /tmp/mysqld.log
Bitirmek sonra, değişiklik general_log
için 0
(ileride kullanabilirsiniz böylece), ardından dosyayı yeniden ve yeniden başlatma SQL sunucusu kaldırın: killall -HUP mysqld
.