“O servidor MySQL foi embora” ao tentar importar um arquivo de despejo grande

8

Estou tentando importar um arquivo de despejo do MySQL.

O arquivo foi criado em um servidor Linux, estou tentando importar no windows

Eu entrei na linha de comando e corri:

SOURCE c:/dump.sql

Mas isso parece ter levantado alguns problemas no conjunto de caracteres (especificamente com citações inteligentes e outras pontuações não padrão).

Foi-me sugerido que eu corra:

mysql -u username -d dbase < c:\dump.sql

Quando eu tento isso, recebo o erro

ERROR 2006 (HY000) at line 149351: MySQL server has gone away

Um pouco de googling sugeriu que isso tenha a ver com o switch max_allowed_packet, mas eu tentei isso e não funcionou. Alguém tem alguma idéia do que isso poderia ser?

Se alguém tiver uma sugestão sobre o problema do conjunto de caracteres, isso também seria útil.

    
por Jeremy French 08.05.2009 / 17:36

4 respostas

20

Meu primeiro instinto depois de ler a mensagem de erro no título da pergunta foi sugerir o aumento de max_allowed_packet. Você mencionou que tentou "mudar" e não funcionou. Você pode confirmar que modificou corretamente o arquivo de configuração do servidor? Sua frase faz parecer que você tentou usar isso como uma linha de comando na linha de comando do cliente mysql.exe, o que não faria com que o servidor alterasse o comportamento.

Portanto, em resumo, o que você deve tentar fazer é localizar e editar o arquivo my.cnf que seu servidor está usando atualmente. Na seção [mysqld] , altere as configurações de max_allowed_packet para algo como

[mysqld]
max_allowed_packet=32M

Não se esqueça de reiniciar o servidor depois de alterar a configuração.

Eu usei 32M (um valor ridiculamente grande) como exemplo. Como sua consulta parece ser enorme, você deve tentar esse valor (ou talvez até 64M se tiver RAM suficiente) para ver se funciona.

Outra opção é deixar o servidor como está e alterar o comportamento do cliente usado para gerar o dump SQL. Diga para limitar o tamanho das consultas individuais para menos de 1 MB - isso também deve funcionar.

Para mais detalhes, consulte B.1.2.10. Pacote muito grande no manual do MySQL.

    
por 08.05.2009 / 17:51
0

Você consegue acessar a instância do MySQL no servidor windows a partir da caixa linux?

Em caso afirmativo, você pode executar o comando na caixa linux, com a opção -h para conectar ao servidor na caixa do windows?

mysql -u username -d dbase -h <windows host> < dump.sql

Isso pode resolver seus problemas de conjunto de caracteres , já que você está usando o cliente Linux na caixa original para fazer a importação. (apenas um palpite)

    
por 08.05.2009 / 17:45
0

O que o log do MySQL diz?

Às vezes, esse erro é relatado no cliente se houver um erro incorrigível no servidor. Isso pode ser um indicador de corrupção de disco nas tabelas do banco de dados.

    
por 10.05.2009 / 12:29
-1

Sua conta tem uma senha? Talvez você precise adicionar a opção -p:

mysql -u username -p -d dbase < c:\dump.sql
    
por 08.05.2009 / 17:40

Tags