Asunto: Ejcutar SQL línea comandos valor monitorización MySQL
Hola, estoy intentando monitorizar el estado de un servidor de MySQL de forma automática, tengo montado el servidor MySQL en un Linux CentOS, el caso es que quisiera saber si existe la posibilidad de ejecutar algún comando en MySQL que devuelva un valor, por ejemplo ejecutar una consulta SQL que devuelva el número de registros de una tabla que siempre debe tener registros, así sabré si MySQL está activo.
Publicado:
Lun Oct 13, 2014 11:24 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Ejcutar SQL línea comandos valor monitorización MySQL
Anuncios
Sí que es posible, si tienes las variables de entorno correctamente configuradas podrás usar la herramienta de la línea de comandos de MySQL para ejecutar una consulta SQL directamente (pasándole un usuario y contraseña), un ejemplo:
Código:
mysql -h localhost -u nombre_usuario -pContraseña base_datos -e "select count(*) from facturas" | tail -1
En el caso anterior hay que tener en cuenta:
* localhost: IP o nombre del servidor MySQL al que nos conectaremos, dejaremos localhost si el servidor es el mismo en el que estamos ejecutando el comando.
* nombre_usuario: nombre de un usuario de MySQL con permisos suficientes para ejecutar la consulta SQL en la base de datos que queramos.
* Contraseña: contraseña del usuario anterior. IMPORTANTE: no hay que dejar espacio entre -p y la contraseña, sería -pcontraseña.
* "select count(*) from facturas": la consulta SQL que queramos ejecutar
* Con "tail -1" indicaremos que muestre solo la última línea del resultado, en el caso de una consulta SQL con un count(*) devolvería algo así:
count(*)
801
Con el tail -1 indicaremos que solo devuelva la segunda línea.
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