Erro do MySQL 2006: o servidor mysql foi embora

Estou executando um servidor no meu escritório para processar alguns arquivos e relatar os resultados para um servidor MySQL remoto.

O processamento dos arquivos leva algum tempo e o processo morre no meio do caminho com o seguinte erro:

2006, MySQL server has gone away 

Eu ouvi sobre a configuração do MySQL, wait_timeout , mas eu preciso mudar isso no servidor no meu escritório ou no servidor MySQL remoto?

Pode ser mais fácil verificar se a conexão e restabelecer, se necessário.

Veja PHP: mysqli_ping para informações sobre isso.

Eu encontrei isso várias vezes e eu normalmente encontrei a resposta para ser uma configuração padrão muito baixa de max_allowed_packet . Aumentá-lo em /etc/my.cnf (sob [mysqld] ) para 8 ou 16M geralmente o corrige.

 [mysqld] max_allowed_packet=16M 

Nota: Isso pode ser configurado no seu servidor enquanto ele está em execução.

Use set global max_allowed_packet=104857600 . Isso define a 100MB.

Eu tive o mesmo problema, mas max_allowed_packet no arquivo my.ini/my.cnf sob [mysqld] feito.

adicione uma linha

max_allowed_packet = 500 milhões

Agora restart the MySQL service assim que estiver pronto.

Eu usei o seguinte comando na linha de comando do MySQL para restaurar um database MySQL com tamanho superior a 7 GB, e funciona.

 set global max_allowed_packet=268435456; 

Em MAMP (versão não-pro) eu adicionei

 --max_allowed_packet=268435456 

para ...\MAMP\bin\startMysql.sh

Créditos e mais detalhes aqui

Erro: 2006 ( CR_SERVER_GONE_ERROR )

Mensagem: O servidor MySQL foi embora

Geralmente você pode repetir a conexão e, em seguida, fazer a consulta novamente para resolver esse problema – tente como 3-4 vezes antes de desistir completamente.

Eu suponho que você esteja usando o PDO. Nesse caso, você pegaria a exceção PDO, incrementaria um contador e tentaria novamente se o contador estivesse abaixo de um limite.

Se você tem uma consulta que está causando um tempo limite, você pode definir essa variável executando:

 SET @@GLOBAL.wait_timeout=300; SET @@LOCAL.wait_timeout=300; -- OR current session only 

Onde 300 é o número de segundos que você acha que o tempo máximo que a consulta poderia levar.

Mais informações sobre como lidar com problemas de conexão do Mysql.

EDIT: outras duas configurações que você pode querer usar também são net_write_timeout e net_read_timeout .

Este erro ocorre devido a expiração do wait_timeout.

Basta ir ao servidor mysql verificar seu wait_timeout:

mysql> SHOW VARIABLES LIKE ‘wait_timeout’

mysql> set global wait_timeout = 600 # 10 minutos ou tempo máximo de espera que você precisa

http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html

Eu estava recebendo este mesmo erro no meu servidor Ubuntu DigitalOcean.

Eu tentei alterar o max_allowed_packet e as configurações wait_timeout, mas nenhum deles consertou.

Acontece que meu servidor estava sem memory RAM. Eu adicionei um arquivo de swap de 1GB e isso resolveu meu problema.

Verifique sua memory com free -h para ver se é isso que está causando isso.

No windows esses caras usando o xampp devem usar este caminho xampp / mysql / bin / my.ini e mudar max_allowed_packet (na seção [mysqld]) para o tamanho de sua escolha. por exemplo

 max_allowed_packet=8M 

Novamente no php.ini (xampp / php / php.ini) altere o upload_max_filesize o tamanho da opção. por exemplo

 upload_max_filesize=8M 

Deu-me uma dor de cabeça por algum tempo até que eu descobri isso. Espero que ajude.

Para o Vagrant Box, certifique-se de alocar memory suficiente para a checkbox

 config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end 

O cenário improvável é que você tenha um firewall entre o cliente e o servidor que força a reboot do TCP na conexão.

Eu tive esse problema e descobri que nosso firewall corporativo F5 foi configurado para encerrar as sessões inativas que estão ociosas por mais de 5 minutos.

Mais uma vez, esse é o cenário improvável.

Se você estiver usando o 64Bit WAMPSERVER, por favor procure por múltiplas ocorrências de max_allowed_packet porque o WAMP usa o valor definido em [wampmysqld64] e não o valor definido em [mysqldump], que para mim foi o problema, eu estava atualizando o errado. Defina isso como algo como max_allowed_packet = 64M.

Espero que isso ajude outros usuários do Wampserver por aí.

descomente a linha abaixo em seu my.ini/my.cnf , isso dividirá seu arquivo grande em uma parte menor

 # binary logging format - mixed recommended # binlog_format=mixed 

PARA

 # binary logging format - mixed recommended binlog_format=mixed 

No meu caso, era um valor baixo da variável open_files_limit , que bloqueava o access do mysqld aos arquivos de dados.

Eu verifiquei com:

 mysql> SHOW VARIABLES LIKE 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1185 | +------------------+-------+ 1 row in set (0.00 sec) 

Depois que mudei a variável para big value, nosso servidor estava ativo novamente:

 [mysqld] open_files_limit = 100000 

Foi problema de RAM para mim.

Eu estava tendo o mesmo problema, mesmo em um servidor com 12 núcleos de CPU e 32 GB de RAM. Eu pesquisei mais e tentei liberar RAM. Aqui está o comando que eu usei no Ubuntu 14.04 para liberar RAM:

 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 

E isso consertou tudo. Eu o configurei no cron para ser executado a cada hora.

 crontab -e 0 * * * * bash /root/ram.sh; 

E você pode usar este comando para verificar quanta memory RAM disponível:

 free -h 

E você terá algo assim:

  total used free shared buffers cached Mem: 31G 12G 18G 59M 1.9G 973M -/+ buffers/cache: 9.9G 21G Swap: 8.0G 368M 7.6G 

Eu encontrei a solução para “# 2006 – servidor MySQL foi embora” este erro. A solução é apenas você tem que verificar dois arquivos

  1. config.inc.php
  2. config.sample.inc.php

O caminho desses arquivos no Windows é

 C:\wamp64\apps\phpmyadmin4.6.4 

Nestes dois arquivos, o valor disso:

 $cfg['Servers'][$i]['host']must be 'localhost' . 

No meu caso foi:

 $cfg['Servers'][$i]['host'] = '127.0.0.1'; 

mude para:

 "$cfg['Servers'][$i]['host']" = 'localhost'; 

Certifique-se em ambos:

  1. config.inc.php
  2. arquivos config.sample.inc.php deve ser ‘localhost’.

E último conjunto:

 $cfg['Servers'][$i]['AllowNoPassword'] = true; 

Em seguida, reinicie o Wampserver.


Para alterar o nome de usuário e senha do phpmyadmin

Você pode alterar diretamente o nome de usuário e senha do phpmyadmin através do arquivo config.inc.php

Estas duas linhas

 $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; 

Aqui você pode dar um novo nome de usuário e senha. Após as alterações, salve o arquivo e reinicie o servidor WAMP.

Eu recebi a mensagem Error 2006 em diferentes clientes MySQL no meu desktop Ubuntu. Descobri que minha versão do driver JDBC era muito antiga.

Isso pode ser um problema do tamanho do arquivo .sql.

Se você estiver usando o xampp. Vá para o painel de controle do xampp -> Clique em MySql config -> Open my.ini.

Aumentar o tamanho do pacote.

 max_allowed_packet = 2M -> 10M 

Isso geralmente indica problemas de conectividade do servidor MySQL ou tempos limite. Geralmente pode ser resolvido alterando wait_timeout e max_allowed_packet em my.cnf ou similar.

Eu sugeriria esses valores:

wait_timeout = 28800

max_allowed_packet = 8M

Para usuários que usam o XAMPP, há dois parâmetros max_allowed_packet em C: \ xampp \ mysql \ bin \ my.ini.

É sempre uma boa idéia verificar os logs do servidor Mysql, porque ele foi embora.

Ele vai te dizer.

Se você souber que está ficando off-line por algum tempo, feche sua conexão, faça o processamento, reconecte-se e escreva seus relatórios.