sql >> Database >  >> RDS >> Mysql

Hoe log ik alleen de onbewerkte zoekopdrachten in MySQL in?

Om volledige logquery in te schakelen, voegt u het volgende toe aan uw my.cnf:

log=/var/log/mysqldquery.log

Het bovenstaande zal alle vragen in het logbestand loggen.

Vergeet niet de mysql-service opnieuw te starten nadat u wijzigingen in het my.cnf-bestand hebt aangebracht.

Voorbeelduitvoer van acties via SequelPro (mac-client):

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`

Op *NIX-gebaseerde systemen kunt u grep gebruiken om te starten

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

Of word lastiger en ga dingen doen als:

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

Dit zou je zoiets geven, niet perfect maar dichterbij:

  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. Handige manier om lange SQL-instructies in javascript te verpakken

  2. SQL AS:gebruik, voorbeelden en hoe u er het beste van kunt profiteren

  3. SQL-rangpercentiel

  4. Wat hebben poker, blackjack, Belot en Préférence met databases te maken?