Tentei importar um arquivo sql grande através do phpMyAdmin ... Mas ele continuava mostrando erro
'Servidor MySQL desapareceu'
O que fazer?
mysql
phpmyadmin
FrancisMV123
fonte
fonte
max_allowed_packet
. Um pouco bruto, mas se isso funcionar, você pode encontrar um valor sensato.Respostas:
Como indicado aqui :
Editar:
Observe que os arquivos de opções do MySQL ainda não têm seus comandos disponíveis como comentários (como no php.ini por exemplo). Então você deve digitar qualquer alteração / emenda em
my.cnf
oumy.ini
e colocá-los nomysql/data
diretório ou em qualquer um dos outros caminhos, sob o grupo adequado de opções, tais como[client]
,[myslqd]
, etc. Por exemplo:Em seguida, reinicie o servidor. Para obter seus valores, digite o cliente mysql:
fonte
SHOW VARIABLES
consulta MySQL) e o arquivo que estava importando tinha alguns registros muito grandes. Abri o arquivo my.ini (eu estava executando o Windows) e configurei o valor para istomax_allowed_packet = 64M
:, reiniciei o MySQL e executei novamente a importação.wait_timeout
linhaPara mim, essa solução não deu certo, então eu executei
no meu cliente SQL.
Se não conseguir alterar isso com o serviço MYSql em execução, você deve interromper o serviço e alterar a variável no arquivo "my.ini".
Por exemplo:
fonte
php.ini
arquivo (como sugerido por @GBD na resposta) e o arquivo de configuração do MySQLmy.ini
para fazê-lo funcionar.SHOW variables LIKE 'max_allowed_packet'
max_allowed_packet
cliente em um e importar o.sql
arquivo grande em outra sessão funcionará bem.Se você estiver trabalhando no XAMPP, poderá corrigir o problema do MySQL Server com as seguintes alterações.
abra o arquivo my.ini A localização do my.ini é (D: \ xampp \ mysql \ bin \ my.ini)
altere os seguintes valores de variável
fonte
Se você estiver executando com valores padrão, terá muito espaço para otimizar sua configuração do mysql.
O primeiro passo que eu recomendo é aumentar o max_allowed_packet para 128M.
Faça o download do script MySQL Tuning Primer e execute-o. Ele fornecerá recomendações para várias facetas da sua configuração para melhor desempenho.
Também procure ajustar seus valores de tempo limite no MySQL e PHP.
Qual é o tamanho do arquivo que você está importando e é possível importar o arquivo usando o cliente de linha de comando mysql em vez do PHPMyAdmin?
fonte
Se você estiver usando o MAMP no OS X, precisará alterar o
max_allowed_packet
valor no modelo para MySQL.Você pode encontrá-lo em: Arquivo> Editar modelo> MySQL my.cnf
Em seguida, basta procurar
max_allowed_packet
, alterar o valor e salvar.fonte
Resolvi meu problema com este pequeno arquivo /etc/mysql/my.cnf:
fonte
[mysqld]
A outra razão pela qual isso pode acontecer está ficando sem memória. Verifique / var / log / messages e certifique-se de que o my.cnf não esteja configurado para fazer com que o mysqld aloque mais memória do que a sua máquina.
Seu processo mysqld pode realmente ser morto pelo kernel e depois reiniciado pelo processo "safe_mysqld" sem você perceber.
Use top e observe a alocação de memória enquanto ela está em execução para ver qual é o seu espaço livre.
faça um backup do my.cnf antes de alterá-lo.
fonte
Eu tive esse erro e outros relacionados, quando importei no arquivo SQL de 16 GB. Para mim, editando o my.ini e definindo o seguinte (com base em várias postagens diferentes) na seção [mysqld]:
Se você estiver executando no Windows, acesse o painel de controle, serviços e veja os detalhes do MySQL e verá onde está o my.ini. Depois de editar e salvar o my.ini, reinicie o serviço mysql (ou reinicie o computador).
Se você estiver usando o HeidiSQL, também poderá definir alguns ou todos eles usando isso.
fonte
Atualizei "max_allowed_packet" para 1024M, mas ele ainda não estava funcionando. Acontece que meu script de implantação estava em execução:
Certifique-se de especificar explicitamente um número maior na linha de comando, se você o estiver usando dessa maneira.
fonte
Se seus dados incluem
BLOB
dados:Observe que uma importação de dados da linha de comando parece obstruir os dados do BLOB, resultando no erro 'O servidor MySQL se foi'.
Para evitar isso, recrie o mysqldump, mas com a
--hex-blob
bandeira:http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob
que gravará o arquivo de dados com valores hexadecimais, em vez de binários, entre outros textos.
O PhpMyAdmin também tem a opção "Despejar colunas binárias em notação hexadecimal (por exemplo," abc "torna-se 0x616263)", que funciona bem.
Observe que há um bug de longa data (em dezembro de 2015), o que significa que as
GEOM
colunas não são convertidas: Faça backup de uma tabela com uma coluna GEOMETRY usando o mysqldump? portanto, usar um programa como o PhpMyAdmin parece ser a única solução alternativa (a opção mencionada acima converte corretamente as colunas GEOM).fonte
Se levar muito tempo para falhar, aumente o
wait_timeout
variável.Se falhar imediatamente, amplie a
max_allowed_packet
variável; Se ainda não funcionar, verifique se o comando é SQL válido. A minha tinha citações em fuga que estragaram tudo.Além disso, se possível, considere limitar o número de inserções de um único comando SQL para, digamos, 1000. Você pode criar um script que crie várias instruções a partir de uma única, reintroduzindo a parte INSERT ... a cada n inserção.
fonte
Eu recebi um erro semelhante. Para resolver isso, basta abrir o arquivo my.ini. Aqui na linha 36, altere o valor do tamanho máximo permitido do pacote, ou seja. max_allowed_packet = 20M
fonte
Certifique-se de que o processo mysqld não seja reiniciado devido a gerenciadores de serviços como systemd.
Eu tive esse problema em vagrant com centos 7. Os ajustes de configuração não ajudaram. Acontece que era o systemd que matava o serviço mysqld toda vez que consumia muita memória.
fonte
Hoje tive um erro semelhante ao duplicar o banco de dados (o servidor MySQL desapareceu ...), mas quando tentei reiniciar o mysql.server, obtive um erro
Foi assim que resolvi: abri Aplicativos / Utilitários / e executei o Activity Monitor
foi capaz de resolver o problema do erro com
fonte
Estou fazendo alguns cálculos grandes que envolvem a conexão mysql para ficar muito tempo e com dados pesados. Eu estava enfrentando este "Mysql ir embora". Então eu tentei otimizar as consultas, mas isso não me ajudou, então eu aumentei o limite de variáveis mysql, que é definido como um valor mais baixo por padrão.
wait_timeout max_allowed_packet
Até o limite que mais lhe convém, deve ser o Qualquer número * 1024 (bytes). você pode fazer login no terminal usando o comando ' mysql -u nome de usuário - p ' e pode verificar e alterar esses limites de variáveis.
fonte
Para hospedagem compartilhada GoDaddy
Nas contas de hospedagem compartilhada do GoDaddy, é complicado ajustar os arquivos PHP.ini etc. No entanto, existe outra maneira e funcionou perfeitamente para mim. (Acabei de carregar com êxito um arquivo de texto de 3.8Mb .sql, contendo 3100 linhas e 145 cols. Usando o comando IMPORT no phpMyAdmin, estava obtendo que o temido servidor MySQL desaparecesse e não há mais informações.)
Eu descobri que Matt Butcher tinha a resposta certa. Como Matt, eu havia tentado todos os tipos de truques, desde a exportação de bancos de dados MySQL em pedaços pequenos até a criação de scripts que dividem grandes importações em menores. Mas aqui está o que funcionou:
(1) CPANEL ---> ARQUIVOS (grupo) ---> BACKUP
(2a) Sob o título "Parcial Backups" ...
(2b) Em "Download a MySQL Database Backup"
(2c) Escolha seu banco de dados e faça o download de um backup (esta etapa é opcional, mas recomendável)
(3a) Diretamente à direita de 2b, sob o título "Restaurar um backup do banco de dados MySQL"
(3b) Escolha o arquivo de importação .SQL da unidade local
(3c) A verdadeira felicidade será sua (em breve ....) A minha demora 5 segundos
Notas:
a. Se você não tiver certeza de como criar um arquivo de importação .SQL, use o phpMyAdmin para exportar uma tabela e modificar a estrutura do arquivo.
FONTE: Artigo de Matt Butcher 2010
fonte
Se aumentar
max_allowed_packet
não ajuda.Eu estava recebendo o mesmo erro que você ao importar um
.sql
arquivo para o meu banco de dados via Sequel Pro.O erro ainda persistiu após levantar o
max_allowed_packet
que512M
então eu corri a importação na linha de comando em vez de:Ele deu o seguinte erro:
Encontrei algumas perguntas úteis sobre o StackOverflow:
No meu caso, meu
.sql
arquivo estava um pouco corrompido ou algo assim. O dump do MySQL que obtemos vem em dois arquivos zip que precisam ser concatenados juntos e depois descompactados. Acho que o descompactação foi interrompido inicialmente, deixando o arquivo com alguns caracteres e codificações estranhos. Obter um novo despejo do MySQL e descompactá-lo funcionou corretamente para mim.Só queria adicionar isso aqui caso outras pessoas achem que aumentar a
max_allowed_packet
variável não estava ajudando.fonte
Nenhuma das soluções em relação ao tamanho do pacote ou ao tempo limite fez alguma diferença para mim. Eu precisava desativar o ssl
https://dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
fonte
Eu tenho o mesmo problema com
No arquivo \ xampp \ mysql \ bin \ my.ini do phpmyadmin, obtemos apenas
que é apenas para o mysqldump -u root -p dbname. Resolvi meu problema substituindo o código acima por
fonte