Pular para o conteúdo

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

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?
David Augusto david23.7
Hits: 8.911 Categoria: C/C++ Subcategoria: Banco de dados
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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?
Download matador.c Enviar nova versão

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;

}

Agenda eletrônica em C + SQL

teste

Aplicativos

Bubble Sort

Jogo da forca com banco de dados MySQL

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.