Como uma massa pode matar conexões com o MySQL?

6

Eu abri muitas conexões com o MySQL e agora não consigo acessá-lo. Diz "muitas conexões". Como posso fechar todas essas conexões? Eu também não sei como reiniciá-lo, o que pode resolver o problema.

    
por Lucas 23.04.2011 / 19:19

6 respostas

4

Eu respondi a essa pergunta sobre a eliminação em massa das Conexões de banco de dados no DBA StackExchange de volta em maio de 2011.

O que pode permitir que uma pessoa faça o login no mysql sob condições tão estressantes? A resposta é bem simples: NÃO DÊ A TODOS O SUPER PRIVILÉGIO !!!

Por que o privilégio SUPER?

De acordo com a Documentação do MySQL :

The SUPER privilege enables an account to use CHANGE MASTER TO, KILL or mysqladmin kill to kill threads belonging to other accounts (you can always kill your own threads), PURGE BINARY LOGS, configuration changes using SET GLOBAL to modify global system variables, the mysqladmin debug command, enabling or disabling logging, performing updates even if the read_only system variable is enabled, starting and stopping replication on slave servers, specification of any account in the DEFINER attribute of stored programs and views, and enables you to connect (once) even if the connection limit controlled by the max_connections system variable is reached.

Em vista disso, conexões regulares com clientes não devem ter privilégios SUPER. Assim que o número de Conexões DB atingido = max_connections , apenas um mais conexão será permitida e uma conexão terá privilégio SUPER. Se todos e sua avó tiverem o privilégio SUPER, todas as apostas serão canceladas e ninguém poderá fazer o login.

    
por 07.10.2011 / 17:29
3

Você tem as três opções a seguir:

  1. Iniciar - > Executar - > Services.msc
    Encontre o MySQL, clique com o botão direito e escolha reiniciar

  2. Iniciar - > Executar - > CMD
    net stop MySQL enter
    net start MySQL entra

  3. Mate todas as instâncias do mySQLd.exe no painel de tarefas. (não recomendado)
por 24.04.2011 / 00:18
0

se você tiver acesso ao seu servidor, reinicie o mysql. Se você não tem acesso ao seu servidor, simplesmente espere.

    
por 23.04.2011 / 19:21
0

Alguns aplicativos da web sempre reportarão "muitas conexões" se não puderem se conectar ao banco de dados. Se você está recebendo este erro, mesmo após uma reinicialização do MySQL, então o erro real é provavelmente "sem conexão". Tente conectar-se ao MySQL de outra forma, linha de comando, phpmydmin ou outro site controlado pelo MySQL no mesmo servidor.

Se você puder se conectar ao MySQL via meios alternativos, verifique a seqüência de conexão em seu site (O bit que dá nome de usuário e senha para o MySQL) e então conecte com essas credenciais, algo pode ter sido alterado mas não atualizado no script.

Se você não consegue conectar-se ao MySQL e reiniciar o MySQL não corrigiu, então você precisará olhar para o seu log de eventos (Você disse que era um servidor Windows em um comentário). Reiniciar o servidor é um atalho que elimina muitos problemas, além de verificar se você não está sem espaço em disco.

    
por 24.04.2011 / 01:14
0

Eu resolvi isso! Foi um erro no código c #, onde eu acidentalmente em loop o "connection.Open ()". -.-

Class1 disse 'ei Class2, abra a conexão!' e a Class2 respondeu 'conexão aberta! Agora abra uma conexão, Class1! '. Então a classe 1 abriu uma conexão e disse para a classe 2 'abrir uma conexão também!' e muuuuito em ...

Eu sinto muito pela idiotice, eu só não tinha percebido isso.-

3 dias preso (Y)

Felicidades!

    
por 24.04.2011 / 16:35
0

Você deve conseguir entrar no mysql com o usuário root.
De lá, você pode executar uma "lista de processos". Você pode então executar kill 'Id' para matar as conexões.

    
por 07.10.2011 / 20:27