
Estou usando o seguinte comando para importar dados de um arquivo de 160 MB criado em outro servidor com mysqldump. O ambiente para o qual estou importando está executando o servidor WAMP mais recente com max_allowed_packet definido como "16M".
C:\wamp\bin\mysql\mysql5.1.36\bin>mysql --max_allowed_packet=15M -u root -pXXX drupal < C:\prod.sql
ERROR 2006 (HY000) at line 644: MySQL server has gone away
Isso parece acontecer de forma consistente após aproximadamente 39 segundos e 85,5 MB importados.
Eu li muitas sugestões sobre como aumentar max_allowed_packet em my.ini, então fiz para 16M em vez do padrão de 1M. No entanto, o erro que estou recebendo persiste, não importa o que eu faça. Alguma ideia?
Agora resolvido em my.ini:
[wampmysqld]
port = 3306
socket = /tmp/mysql.sock
key_buffer = 384M
max_allowed_packet = 100M
table_cache = 4096
sort_buffer_size = 2M
net_buffer_length = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 64M
myisam_sort_buffer_size = 64M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data
thread_cache_size = 8
query_cache_size = 32M
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 10M
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 100
wait_timeout = 28800
[mysqldump]
quick
max_allowed_packet = 100M
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
Responder1
Qual é a estrutura de dados no sql?
É possível que uma coluna seja um blob, talvez uma imagem ou PDF maior que 16M. Por que não definir max_allowed_packet para 160 MB (já que nenhum pacote pode ser maior que o tamanho inteiro do arquivo) e testá-lo novamente, você sempre pode trocá-lo novamente mais tarde.
Você pode obter um valor mais preciso se importar os dados, use o comando SHOW TABLE STATUS para obter os tamanhos dos dados e verá então quão grande eles devem ser.
O erro, entretanto, é muito geral e há uma lista de possíveis motivos pelos quais você vê o errono site mysql
Você terá que analisar cada um deles para localizar o problema, mas, na minha experiência, sempre foi um pacote grande demais. Eu tenho max_packet_size definido como 180 MB em uma de minhas caixas de produção exatamente por esse motivo.
Responder2
tente aumentar o wait_timeout para 100 em seu my.cnf e reinicie o servidor
wait_timeout = 100
Responder3
Embora a resposta de Richard seja a solução comum, verifique seu .err
log. É possível que o MySQL esteja ficando sem memória e reiniciando. Isso também aconteceu recentemente com falha de hardware.