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 termina na metade com o seguinte erro:
2006, MySQL server has gone away
Ouvi falar da configuração do MySQL, wait_timeout , mas preciso alterar isso no servidor do meu escritório ou no servidor MySQL remoto?
mysql
mysql-error-2006
floatleft
fonte
fonte
max_allowed_packet
tamanho ou dawait_timeout
quantidade não for corrigida, verifique o uso de memória. Eu estava recebendo o mesmo erro e estava sendo causado pelo meu servidor ficar sem memória. Adicionei um arquivo de troca de 1 GB e o consertei.Respostas:
Pode ser mais fácil verificar se a conexão e restabelecê-la, se necessário.
Veja PHP: mysqli_ping para informações sobre isso.
fonte
Eu encontrei isso várias vezes e normalmente considero a resposta uma configuração padrão muito baixa de
max_allowed_packet
.Elevá-lo em
/etc/my.cnf
(abaixo[mysqld]
) para 8 ou 16M geralmente o corrige. (O padrão no MySql 5.74194304
é de 4 MB.)Nota: Basta criar a linha se ela não existir
Nota: Isso pode ser definido no seu servidor enquanto ele está sendo executado.
Use
set global max_allowed_packet=104857600
. Isso define para 100 MB.fonte
mysql.server stop
,mysql.server start
(out de 2018, MySQL v5.7, MacOS)Eu tive o mesmo problema, mas a alteração
max_allowed_packet
nomy.ini/my.cnf
arquivo abaixo[mysqld]
fez o truque.adicione uma linha
agora
restart the MySQL service
quando você terminar.fonte
Eu usei o seguinte comando na linha de comando do MySQL para restaurar um banco de dados MySQL com tamanho superior a 7 GB e funciona.
fonte
show variables like 'max_allowed_packet';
Erro: 2006 ( CR_SERVER_GONE_ERROR )
Geralmente, você pode tentar conectar novamente e, em seguida, fazer a consulta novamente para resolver esse problema - tente três a quatro vezes antes de desistir completamente.
Vou assumir que você está usando DOP. Nesse caso, você capturaria a exceção PDO, aumente um contador e tente novamente se o contador estiver abaixo de um limite.
Se você tiver uma consulta que está causando um tempo limite, poderá definir esta variável executando:
Onde 300 é o número de segundos que você considera o tempo máximo que a consulta pode levar.
Mais informações sobre como lidar com problemas de conexão Mysql.
EDIT: Duas outras configurações que você também pode querer usar são
net_write_timeout
enet_read_timeout
.fonte
No MAMP (versão não profissional), adicionei
para
...\MAMP\bin\startMysql.sh
Créditos e mais detalhes aqui
fonte
Este erro ocorre devido ao vencimento de wait_timeout.
Basta ir ao servidor mysql e verificar o seu wait_timeout:
http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html
fonte
Existem várias causas para esse erro.
Relacionado ao MySQL / MariaDB:
wait_timeout
- Tempo em segundos que o servidor aguarda a conexão se tornar ativa antes de fechá-la.interactive_timeout
- Tempo em segundos que o servidor aguarda uma conexão interativa.max_allowed_packet
- Tamanho máximo em bytes de um pacote ou uma sequência gerada / intermediária. Defina o tamanho do maior BLOB, em múltiplos de 1024.Exemplo de my.cnf :
Relacionado ao servidor:
free -h
Estrutura relacionada:
CONN_MAX_AGE
(veja docs )Como depurar:
SHOW VARIABLES LIKE '%time%';
mysqladmin variables
log_warnings = 4
log_error_verbosity = 3
fonte
Nas janelas, aqueles que usam o xampp devem usar este caminho xampp / mysql / bin / my.ini e alterar max_allowed_packet (na seção [mysqld]) para o tamanho de sua escolha. por exemplo
Novamente no php.ini (xampp / php / php.ini) altere upload_max_filesize o tamanho da escolha. por exemplo
Me deu dor de cabeça por algum tempo até eu descobrir isso. Espero que ajude.
fonte
upload_max_filesize
variável. Ele sempre se não reconhecido no meu mysqlEu estava recebendo esse mesmo erro no meu servidor DigitalOcean Ubuntu.
Tentei alterar as configurações max_allowed_packet e wait_timeout, mas nenhum deles o corrigiu.
Acontece que meu servidor estava sem memória RAM. Eu adicionei um arquivo de troca de 1 GB e isso corrigiu meu problema.
Verifique sua memória
free -h
para ver se é isso que está causando isso.fonte
Foi um 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 usei no Ubuntu 14.04 para liberar RAM:
E, consertou tudo. Eu o configurei no cron para executar a cada hora.
E você pode usar este comando para verificar a quantidade de RAM disponível disponível:
E você terá algo parecido com isto:
fonte
No meu caso, foi o baixo valor da
open_files_limit
variável, que bloqueou o acesso do mysqld aos arquivos de dados.Eu verifiquei com:
Depois que alterei a variável para grande valor, nosso servidor voltou a funcionar:
fonte
Se você estiver usando o WAMPSERVER de 64 bits, procure várias 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 era o problema, eu estava atualizando o incorreto. Defina isso como algo como max_allowed_packet = 64M.
Espero que isso ajude outros usuários do Wampserver por aí.
fonte
Isso geralmente indica problemas ou tempos limite de conectividade do servidor MySQL . Geralmente, pode ser resolvido alterando wait_timeout e max_allowed_packet em my.cnf ou similar.
Eu sugeriria estes valores:
wait_timeout = 28800
max_allowed_packet = 8M
fonte
Para o Vagrant Box, aloque memória suficiente para a caixa
fonte
O cenário improvável é que você tenha um firewall entre o cliente e o servidor que força a redefinição do TCP na conexão.
Eu tive esse problema e achei que o firewall corporativo F5 estava configurado para encerrar sessões inativas que ficam ociosas por mais de 5 minutos.
Mais uma vez, este é o cenário improvável.
fonte
É sempre uma boa idéia verificar os logs do servidor Mysql, pelo motivo pelo qual ele foi embora.
Isso vai lhe dizer.
fonte
Se você estiver usando o servidor xampp:
Vá para xampp -> mysql -> bin -> my.ini
Mude abaixo do parâmetro:
max_allowed_packet = 500M
innodb_log_file_size = 128M
Isso me ajudou muito :)
fonte
descomente a linha abaixo no seu
my.ini/my.cnf
, isso dividirá seu arquivo grande em uma porção menorPARA
fonte
Eu encontrei a solução para "# 2006 - O servidor MySQL foi embora" neste erro. A solução é apenas você ter que verificar dois arquivos
O caminho desses arquivos no Windows é
Nesses dois arquivos, o valor disso:
No meu caso, foi:
altere para:
Certifique-se de ambos:
E último conjunto:
Em seguida, reinicie o Wampserver.
Para alterar o nome de usuário e a senha do phpmyadmin
Você pode alterar diretamente o nome de usuário e a senha do phpmyadmin através do arquivo config.inc.php
Essas duas linhas
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.
fonte
Recebi a mensagem de erro 2006 em diferentes softwares clientes MySQL no meu desktop Ubuntu. Aconteceu que minha versão do driver JDBC era muito antiga.
fonte
Isso pode ser um problema do tamanho do seu arquivo .sql.
Se você estiver usando o xampp. Vá para o painel de controle do xampp -> Clique em MySql config -> Open my.ini.
Aumente o tamanho do pacote.
fonte
Existe uma maneira mais fácil se você estiver usando o XAMPP. Abra o painel de controle do XAMPP e clique no botão de configuração na seção mysql.
Agora clique no my.ini e ele será aberto no editor. Atualize o max_allowed_packet para o tamanho necessário.
Então reinicie o serviço mysql. Clique em parar no serviço Mysql, clique em Iniciar novamente. Aguarde alguns minutos.
Em seguida, tente executar sua consulta Mysql novamente. Espero que funcione.
fonte
MAMP 5.3, você não encontrará my.cnf e adicioná-los não funciona, pois max_allowed_packet é armazenado em variáveis.
Uma solução pode ser:
Execute a seguinte consulta, ela configurou max_allowed_packet como 7gb:
definir global max_allowed_packet = 268435456;
Para alguns, também pode ser necessário aumentar os seguintes valores:
fonte
Para usuários que usam XAMPP, existem 2 parâmetros max_allowed_packet em C: \ xampp \ mysql \ bin \ my.ini.
fonte
Este erro ocorre basicamente por dois motivos.
Você pode tentar este código abaixo.
Ele atenua o erro, seja qual for o motivo, especialmente pelo segundo motivo.
Se for causado por pouca RAM, você precisará aumentar a eficiência da conexão com o banco de dados a partir do código, da configuração do banco de dados ou simplesmente aumentar a RAM.
fonte
Caso isso ajude alguém:
Eu recebi esse erro quando abri e fechei conexões em uma função que seria chamada de várias partes do aplicativo. Como possuímos muitas conexões, achamos que seria uma boa ideia reutilizar a conexão existente ou descartá-la e criar uma nova assim:
self :: $ instance-> query ('KILL CONNECTION_ID ()'); self :: $ instance = null; return self :: newConnection ($ banco de dados, $ host, $ usuário, $ senha); } retorna self :: $ instance; } Bem, fomos muito cuidadosos com a matança e, portanto, os processos que fazem coisas importantes na conexão antiga nunca terminam seus negócios. Então deixamos cair essas linhas
e como o hardware e a configuração da máquina permitem, aumentamos o número de conexões permitidas no servidor adicionando
para o nosso arquivo de configuração. Isso corrigiu nosso problema por enquanto e aprendemos algo sobre como matar conexões mysql.
fonte
Se você sabe que está offline por um tempo, pode fechar sua conexão, processar, reconectar e escrever seus relatórios.
fonte