sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo registro solo las consultas sin procesar en MySQL?

Para habilitar la consulta de registro completa, agregue lo siguiente a su my.cnf:

log=/var/log/mysqldquery.log

Lo anterior registrará todas las consultas en el archivo de registro.

No olvide reiniciar el servicio mysql después de realizar cambios en el archivo my.cnf.

Ejemplo de salida de acciones a través de SequelPro (cliente 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`

En los sistemas basados ​​en *NIX, puede usar grep para comenzar

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

O ponte más complicado y empieza a hacer cosas como:

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

Esto te daría algo como esto, no perfecto pero más cercano:

  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`