MySQL configuração "max_allowed_packet"
Há uns dias atrás estava fazendo um restore de um dump de mais ou menos 500MB. Até aí tudo bem, mas o MySQL começou a retornar a seguinte mensagem de erro.
ERROR 1153 (08S01) at line 651032: Got a packet bigger than 'max_allowed_packet' bytes
O servidor de banco estava em uma máquina de desenvolvimento com Mac OS X 10.6. Até aí nada de mais, mas a instalação do MySQL para o Mac não cria arquivo de configuração. Para resolver o meu problema eu fiz o seguinte, abri um terminal e digitei.
mysqladmin -u root
O sistema retornou a seguinte saída:
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Note que no meu caso não foi necessário especificar a senha, pois a minha máquina e de desenvolvimento. Se o usuário root do seu servidor possuir um senha, adicione o parâmetro -p seguido da senha. Exemplo:
#!terminal mysqladmin -u root -p123
Detalhe importante não existe espaço entre o parâmetro e a senha informada(123). Beleza, na resposta do servidor ele informou que o arquivo de configuração do MySQL, pode ser salvo nos diretórios /etc/my.cnf, /etc/mysql/my.cnf, /usr/local/mysql/etc/my.cnf ou ~/.my.cnf. Pra resolver o meu problema fiz o seguinte, criei um arquivo my.cnf no diretório /etc, com o seguinte conteúdo.
[mysqld] max_allowed_packet=32M
Pronto, agora basta reinicie o serviço do MySQL e o script de dump de 500MB roda redondo. Então fica a dica, quando instalar o MySQL em uma máquina Linux ou Mac OS X, verifique se o arquivo de configuração existe nos diretórios listados acima, caso não encontre, basta copiar o template fornecido pelo MySQL. Abra um terminal, e siga os seguintes passos.
cd /usr/local/mysql/support-files/ sudo cp my-huge.cnf /etc/my.cnf
Pronto, reinicie o serviço do MySQL.
