Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę rejestrować tylko nieprzetworzone zapytania w MySQL?

Aby włączyć pełne zapytanie o dziennik, dodaj do pliku my.cnf:

log=/var/log/mysqldquery.log

Powyższe spowoduje zarejestrowanie wszystkich zapytań w pliku dziennika.

Nie zapomnij ponownie uruchomić usługi mysql po wprowadzeniu zmian w pliku my.cnf.

Przykładowe dane wyjściowe z działań za pośrednictwem SequelPro (klient Mac):

090721 11:06:45      51 Query       ALTER TABLE `test` ADD `name` varchar(10) DEFAULT NULL
                     51 Query       SHOW COLUMNS FROM `test`
                     51 Query       SHOW INDEX FROM `test`
090721 11:06:57      51 Query       SHOW COLUMNS FROM `test`
                     51 Query       UPDATE `test` SET `id`='1', `name`='test' WHERE `id` = '1' AND `name` IS NULL LIMIT 1
                     51 Query       SELECT * FROM `test` LIMIT 0,100
                     51 Query       SELECT COUNT(1) FROM `test`   
090721 11:07:00      51 Query       UPDATE `test` SET `id`='2', `name`='test' WHERE `id` = '2' AND `name` IS NULL LIMIT 1
                     51 Query       SELECT * FROM `test` LIMIT 0,100
                     51 Query       SELECT COUNT(1) FROM `test`

W systemach opartych na *NIX możesz użyć grep, aby rozpocząć

grep 'SELECT\|INSERT\|UPDATE' querylog.log

Lub zrób coś bardziej podstępnego i zacznij robić takie rzeczy jak:

grep 'SELECT\|INSERT\|UPDATE' querylog.log | awk '{$1="";$2="";print}'

To dałoby ci coś takiego, nie idealnego, ale bliższego:

  51 Query UPDATE `test` SET `id`='2', `name`='test' WHERE `id` = '2' AND `name` IS NULL LIMIT 1
  SELECT * FROM `test` LIMIT 0,100
  SELECT COUNT(1) FROM `test`
  51 Query INSERT INTO `test` (`id`,`name`) VALUES ('3','testing')
  SELECT * FROM `test` LIMIT 0,100
  SELECT COUNT(1) FROM `test`


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format daty MySQL

  2. Konfiguracja Tomcata przy użyciu DBCP

  3. AWS Aurora:serwer MySQL działa z opcją --read-only, więc nie może wykonać tej instrukcji

  4. Dlaczego widzę COLLATION „xxx” nie jest prawidłowe dla ZESTAWU ZNAKÓW „yyy”

  5. MYSQL:Wstawianie tradycyjnego i uproszczonego chińskiego w tej samej „komórce”