Estou usando o mysql versão 5.0.5 e tentando despejar meus dados, para me preparar para a atualização da versão, e recebo um erro.
Eu corro:
./mysqldump -u root -p --add-drop-table --all-databases > /data/all_db_dump.mysql
E pegue:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `abc` at row: 408640
Repassei algumas perguntas semelhantes e encontrei algumas sugestões:
- correr com
--skip-extended-insert
- Não ajudou - correr com
--hex-blob
- Não ajudou - configurado
max_allowed_packet
para 1024M - Não ajudou (tenho 4 GB de RAM) - configurado
net_read_timeout
para 7200 - Não ajudou - configurado
net_write_timeout
para 7200 - Não ajudou
Para todos os itens acima e obter o mesmo erro.
Eu monitorei a memória do servidor enquanto despejava os dados e não vi nenhum problema. Qual poderia ser o problema?
Considerando que você já definiu o tempo limite, pacote e outras variáveis no nível GLOBAL e não no nível da sessão, existem poucas outras opções que posso pensar.
Opção 1: verifique a corrupção da tabela
Analise e repare a tabela 'abc' para verificar a corrupção no caso do mecanismo myisam. (Considere também a migração de tabelas para o innodb, se possível) Outra abordagem para identificar a corrupção da tabela é selecionar dados (linha:408640) dessas tabelas e você deverá receber um erro ou o MySQL também poderá ser desligado.
Sugestão para o que você está tentando alcançar (no caso de você não conseguir fazer o mysqldump funcionar):
Você também pode atualizar o MySQL pelo método de atualização in-loco. Os passos são os seguintes:
pare o servidor MySQL (com innodb_fast_shutdown=0) e copie a pasta datadir completa como backup (alternativa do mysqldump, em caso de problemas)
atualizar (substituir) os binários do MySQL (/basedir/bin/) pelos binários da versão para a qual você está atualizando
inicie o servidor MySQL como de costume e execute mysql_upgrade
Observação :
A atualização in-loco é muito mais rápida do que o dump lógico caso o tamanho dos dados seja muito grande
não pule a versão principal ao atualizar o Ie 5.0 para 5.6 Em vez disso, você terá que fazer 5.0 -> 5.5 -> 5.6
Mais uma coisa, quando você despeja usando mysqldump, você precisa gerar um arquivo .sql e não um arquivo .mysql (all_db_dump.sql)