Estoy importando un volcado de MySQL y obtengo el siguiente error.
$ mysql foo < foo.sql
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes
Aparentemente hay archivos adjuntos en la base de datos, lo que hace que las inserciones sean muy grandes.
Esto está en mi máquina local, una Mac con MySQL 5 instalada desde el paquete MySQL.
¿Dónde cambio max_allowed_packet
para poder importar el volcado?
¿Hay algo más que deba configurar?
Solo ejecutar mysql --max_allowed_packet=32M …
resultó en el mismo error.
Respuestas:
Probablemente tenga que cambiarlo tanto para el cliente (que está ejecutando para realizar la importación) como para el demonio mysqld que se está ejecutando y acepta la importación.
Para el cliente, puede especificarlo en la línea de comando:
Además, cambie el archivo my.cnf o my.ini en la sección mysqld y establezca:
o puede ejecutar estos comandos en una consola MySQL conectada a ese mismo servidor:
(Use un valor muy grande para el tamaño del paquete).
fuente
max_allowed_packet
en 100 MB?Como dijo michaelpryor, debe cambiarlo tanto para el cliente como para el servidor daemon mysqld.
Su solución para la línea de comandos del cliente es buena, pero los archivos ini no siempre funcionan, dependiendo de la configuración.
Entonces, abra una terminal, escriba mysql para obtener un indicador de mysql y emita estos comandos:
Mantenga abierto el indicador de mysql y ejecute la ejecución de SQL de la línea de comandos en un segundo terminal.
fuente
Esto se puede cambiar en su
my.ini
archivo (en Windows, ubicado en \ Archivos de programa \ MySQL \ MySQL Server) en la sección del servidor, por ejemplo:fuente
Re my.cnf en Mac OS X cuando use MySQL de la distribución de paquetes dmg mysql.com
Por defecto, my.cnf no se encuentra en ninguna parte.
Es necesario copiar uno de
/usr/local/mysql/support-files/my*.cnf
a/etc/my.cnf
y se reiniciemysqld
. (Lo que puede hacer en el panel de preferencias de MySQL si lo instaló).fuente
En etc / my.cnf intente cambiar max_allowed _packet y net_buffer_length a
Si esto no funciona, intente cambiar a
fuente
La solución es aumentar el paquete max_allowed_packet del demonio MySQL. Puede hacer esto a un demonio en ejecución iniciando sesión como Super y ejecutando los siguientes comandos.
Luego para importar su volcado:
fuente
En CENTOS 6 /etc/my.cnf, en la sección [mysqld] la sintaxis correcta es:
fuente
Use una
max_allowed_packet
variable que emita un comando comomysql --max_allowed_packet=32M -u root -p database < dump.sql
fuente
Ligeramente no relacionado con su problema, así que aquí hay uno para Google.
Si no mysqldump el SQL, puede ser que su SQL esté roto.
Acabo de recibir este error al tener accidentalmente un literal de cadena no cerrado en mi código. Dedos descuidados suceden.
Es un mensaje de error fantástico para obtener una cadena desbocada, ¡gracias por eso MySQL!
fuente
max_allowed_packet
error. Si ayuda para aquellos en el futuro, estaba INSERTANDO usando la API de pandasdf.to_sql(...)
A veces, escriba la configuración:
en my.ini no funciona.
Intente determinar el my.ini de la siguiente manera:
o
Luego reinicie el servidor:
fuente
Es un riesgo de seguridad tener
max_allowed_packet
un valor más alto, ya que un atacante puede empujar paquetes de mayor tamaño y bloquear el sistema.Entonces, el valor óptimo de
max_allowed_packet
ser sintonizado y probado.Es mejor cambiar cuando sea necesario (usar
set global max_allowed_packet = xxx
) que tenerlo como parte de my.ini o my.conf .fuente
Estoy trabajando en un entorno de alojamiento compartido y he alojado un sitio web basado en Drupal. No puedo editar el
my.ini
archivo o elmy.conf
archivo también.Entonces, eliminé todas las tablas relacionadas
Cache
y, por lo tanto, pude resolver este problema. Todavía estoy buscando una solución / forma perfecta para manejar este problema.Editar : eliminar las tablas me creó problemas, porque Drupal esperaba que estas tablas deberían existir. Así que vacié el contenido de estas tablas que resolvieron el problema.
fuente
Error:
CONSULTA:
Valor máximo:
fuente
Establezca max_allowed_packet en el mismo (o más) de lo que era cuando lo descargó con mysqldump. Si no puede hacer eso, realice el volcado nuevamente con un valor menor.
Es decir, suponiendo que lo descargó con mysqldump. Si usaste alguna otra herramienta, estás solo.
fuente