Matador de conexões MYSQL que estão dormindo há muito tempo

Publicado por David Augusto (última atualização em 30/10/2012)

[ Hits: 8.264 ]

Homepage: http://pedreirosdosoftware.wordpress.com

Download matador.c




Apenas um programinha para matar aquelas conexões que estão com status sleep há muito tempo no MySQL. Utilizei mais como estudo de conexão MYSQL - C/C++.

Para compilar:

gcc matador.c -o matador -lmysqlclient

P.S.: Sou só eu que misturo português com inglês em meus programas?

  



Esconder código-fonte

/*Matador de conexões Mysql que estão dormindo há muito tempo. 
David Augusto - 2012*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>


void showError(MYSQL *conn)
{
      printf("\n================== ERRO! ==================");
      printf("\nUm erro ocorreu! \n %d %s\n",mysql_errno(conn),mysql_error(conn));
      printf("===========================================\n");

}

int main(int argc,char **argv)
{

   if(argc<4){
      printf("\n\n!!USO: matador IP USUARIO SENHA\n\n");
      return 1;
   }

   MYSQL conn;
   MYSQL_RES *resultSet;
   MYSQL_ROW row;

   int i = 0;
   int j;
   int time = 5000;
   char killerarray[30][30];

   mysql_init(&conn);

   printf("Iniciando Conexao com o banco de dados...");
   if(mysql_real_connect(&conn,argv[1],argv[2],argv[3],"mysql",0,NULL,0))
   {
      printf("\nConexao no banco efetuada com sucesso\n");
   }else
   {
      showError(&conn);
      return 1;
   }

   if(mysql_query(&conn,"SHOW PROCESSLIST"))
      showError(&conn);
   
   resultSet = mysql_store_result(&conn);
   
   if(resultSet)
   {
      while((row=mysql_fetch_row(resultSet)) != NULL){
       if(!strcmp(row[4],"Sleep") && atoi(row[5])>time){
         strcpy(killerarray[i],row[0]);
         i++;         
        }
      }
      
      mysql_free_result(resultSet);
   }else
      showError(&conn);

   if(i<1){
      printf("\nNao existe nenhum processo a ser morto.\n");
   }

   for(j=0;j<i;j++){
      char kill[10] = "KILL ";
      if(mysql_query(&conn,strcat(kill,killerarray[j])))
         showError(&conn);
      else
         printf("Processo %s morto\n",killerarray[j]);
   }
   
   mysql_close(&conn);

   return 0;

}


Scripts recomendados

Reservas em Teatro ou Cinema

teste

Usando MySQL na linguagem C - Exemplo 1

Jogo da forca com banco de dados MySQL

Usando MySQL na linguagem C - Exemplo 3


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts