Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Monitorizar y ver consultas SQL que se ejecutan en MySQL
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Monitorizar y ver consultas SQL que se ejecutan en MySQL

Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Monitorizar y ver consultas SQL que se ejecutan en MySQL Responder citando

Hola, tengo un servidor de base de datos con MySQL Server 5 y con Linux CentOS. El equipo va muy bien pero tengo una pequeña duda con MySQL ¿hay alguna forma de monitorizar y ver todas las consultas SQL que se ejecutan en una base de datos MySQL? tengo un sistema gestor de contenidos web (Joomla!) y una aplicación de facturación, contabilidad, almacén y recursos humanos que usa también el motor de MySQL, el caso es que necesito ver qué consultas SQL ejecuta la aplicación de facturación para poder depurar unos problemas.

¿Es esto posible en MySQL Community? ¿cómo se ven todas las consultas SQL que se ejecutan en MySQL?
MensajePublicado:
Lun May 18, 2015 10:09 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Monitorizar y ver consultas SQL que se ejecutan en MySQL Responder citando



Anuncios



varios escribió:
Hola, tengo un servidor de base de datos con MySQL Server 5 y con Linux CentOS. El equipo va muy bien pero tengo una pequeña duda con MySQL ¿hay alguna forma de monitorizar y ver todas las consultas SQL que se ejecutan en una base de datos MySQL? tengo un sistema gestor de contenidos web (Joomla!) y una aplicación de facturación, contabilidad, almacén y recursos humanos que usa también el motor de MySQL, el caso es que necesito ver qué consultas SQL ejecuta la aplicación de facturación para poder depurar unos problemas.

¿Es esto posible en MySQL Community? ¿cómo se ven todas las consultas SQL que se ejecutan en MySQL?


Sí que es posible, para activar la monitorización de las consultas SQL que se ejecutan en un servidor de MySQL Server sigue estos pasos:

1. Edita el fichero de configuración de MySQL (en linux suele ser my.cnf) que suele estar en equipos Linux en:

/etc/my.cnf

Puedes editar este fichero con nano o con vi:

Código:

nano /etc/my.cnf


Una vez dentro añade las líneas, en el grupo [mysqld]:

general_log = 1
log = /var/log/mysql_SQL.log


Nota: dependiendo de la versión de MySQL Server, es posible que en lugar de "log = xxx" debas usar "general_log_file = xxx". En nuestro laboratorio, usando la versión de MySQL Server 5.5.41 ha funcionado correctamente con log = xxx.

Una vez añadidas estas líneas guardaremos los cambios (en nano pulsando Control + O, en vi pulsando Escape y :w) y cerrando la edición con Control + X en nano o Escape + :q en vi.

2. Ahora debes crear el fichero de log y asignarle permisos, pues a este fichero accederá MySQL Server con el usuario mysql (normalmente el usuario que se crea en el sistema al instalar MySQL Server). Por lo tanto el fichero de log debe existir y este usuario debe tener permisos para este fichero. Para crearlo, podemos usar:

Código:

nano /var/log/mysql_SQL.log


Y asignarle permisos con:

Código:

chmod 777 /var/log/mysql_SQL.log


3. Por último, para que los cambios se apliquen, debes reiniciar el servicio de MySQL Server (mysql), teniendo en cuenta que las aplicaciones dejarán de funcionar unos segundos mientras se reinicia, para reiniciarlo, en CentOS 6 o inferior:

Código:

/etc/init.d/mysql restart


En CentOS 7:

Código:

systemctl restart mysql.service


Ahora si el proceso ha sido correcto, al visualizar el contenido del fichero /var/log/mysql_SQL.log podrás ver las consultas SQL que se van ejecutando en tu servidor de MySQL.
MensajePublicado:
Lun May 18, 2015 10:29 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] Monitorizar y ver consultas SQL MySQL Responder citando



Anuncios



alonsojpd escribió:

Sí que es posible, para activar la monitorización de las consultas SQL que se ejecutan en un servidor de MySQL Server sigue estos pasos:

1. Edita el fichero de configuración de MySQL (en linux suele ser my.cnf) que suele estar en equipos Linux en:
/etc/my.cnf
general_log = 1
log = /var/log/mysql_SQL.log

2. Ahora debes crear el fichero de log y asignarle permisos, pues a este fichero accederá MySQL Server con el usuario mysql (normalmente el usuario que se crea en el sistema al instalar MySQL Server). Por lo tanto el fichero de log debe existir y este usuario debe tener permisos para este fichero. Para crearlo, podemos usar:
Y asignarle permisos con:
3. Por último, para que los cambios se apliquen, debes reiniciar el servicio de MySQL Server (mysql), teniendo en cuenta que las aplicaciones dejarán de funcionar unos segundos mientras se reinicia, para reiniciarlo, en CentOS 6 o inferior:
Código:

/etc/init.d/mysql restart



Genial, me funciona perfecto, ahora me guarda en el fichero de log todas las consultas SQL que se ejecutan en la base de datos, además con esto ya he arreglado el problema que tenía con una aplicación de contabilidad.

Un aporte, si no se establecen bien los permisos del fichero de log para el usuario mysql al ejecutar el comando desde mysql:

set global general_log = 'ON';

Aparece el error:

ERROR 29 (HY000): File '/var/log/mysql_SQL.log' not found (Errcode: 13)

Creando el fichero y estableciéndole los permisos como indicas ya funciona perfecto.

Gracias!!
MensajePublicado:
Lun May 18, 2015 10:34 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: [RESUELTO] Monitorizar y ver consultas SQL MySQL Responder citando



Anuncios



Aportando alguna información más para configurar los log en MySQL:

1. Para comprobar el valor de los parámetros de log desde la línea de comandos de MySQL, accediendo a esta línea de comandos con:

mysql -u xxx -p


2. Introduciendo el comando:

Código:

SHOW VARIABLES LIKE "general_log";


te mostrará el valor del parámetro:

general_log ON

Código:

SHOW VARIABLES LIKE "general_log_file";


te mostrará el valor del parámetro:

general_log_file /var/log/mysql_SQL.log


También puedes ver el valor de los parámetros ejecutando:

Código:

select @@global.general_log;
select @@general_log_file;


3. Para activar el modo de log también puedes ejecutar:

SET GLOBAL general_log = 'ON';

Para desactivarlo:

SET GLOBAL general_log = 'OFF';

4. Es muy recomendable que actives este modo de log solo en momentos determinados para depuraciones y demás y lo vuelvas a desactivar. Este modo te irá guardando en el fichero de log todas las consultas SQL que se ejecutén, si tienes una base de datos que usan muchos usuarios y muchas aplicaciones este log puede crecer muchísimo e incluso ralentizar ciertos procesos de MySQL. Por lo tanto no es conveniente tener activado este modo de log en entornos de producción, solo para depuración.
MensajePublicado:
Lun May 18, 2015 10:48 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A