Estoy tratando de importar un archivo de volcado MySQL.
El archivo fue creado en un servidor Linux, estoy tratando de importarlo en Windows
Me conecté a la línea de comando y ejecuté:
SOURCE c:/dump.sql
Pero esto parece haber generado algunos problemas de juego de caracteres (específicamente con comillas inteligentes y otros signos de puntuación no estándar).
Me sugirieron que corriera:
mysql -u username -d dbase < c:\dump.sql
Cuando intento esto me sale el error
ERROR 2006 (HY000) at line 149351: MySQL server has gone away
Un poco de google sugirió que esto tenía que ver con el interruptor max_allowed_packet, pero lo he intentado y no ha funcionado. ¿Alguien tiene alguna idea de lo que esto podría ser?
Si alguien tiene una sugerencia sobre el problema del juego de caracteres, eso también sería útil.
Respuestas:
Mi primer instinto después de leer el mensaje de error en el título de la pregunta fue sugerir aumentar max_allowed_packet. Mencionaste que intentaste "ese cambio" y no ha funcionado. ¿Puede confirmar que ha modificado correctamente el archivo de configuración del servidor? Su fraseología hace que parezca que ha intentado usar eso como un interruptor de línea de comando en la línea de comando del cliente mysql.exe, lo que no causaría que el servidor altere el comportamiento.
En resumen, lo que debe intentar hacer es localizar y editar el archivo my.cnf que su servidor está utilizando actualmente. En la
[mysqld]
sección, modifique la configuración de max_allowed_packet a algo comoNo olvide reiniciar el servidor después de alterar la configuración.
He usado 32M (un valor ridículamente grande) como ejemplo. Dado que su consulta parece ser enorme, debe probar este valor (o tal vez incluso 64M si tiene suficiente RAM) para ver si funciona.
Otra opción es dejar el servidor como está y modificar el comportamiento del cliente utilizado para generar el volcado de SQL. Dígale que limite el tamaño de las consultas individuales a menos de 1 MB, eso también debería ser el truco.
Para más detalles, véase B.1.2.10. Paquete demasiado grande en el manual de MySQL.
fuente
En MySQL 5.7.24, se debió a una configuración anterior de MySQL 5.6
La siguiente opción es obligatoria si la versión de SQL es la misma 5.7.5 o superior.
sql_mode=TRADITIONAL
También hay dos parámetros max_allowed_packet en /etc/my.cnf, el otro es para mysqldump. Por favor tome nota de lo mismo.
max_allowed_packet = <1G>
Mi instalación está en CentOS7.
fuente
¿Puede acceder a la instancia de MySQL en el servidor de Windows desde el cuadro de Linux?
Si es así, ¿puede ejecutar el comando en el cuadro de Linux, con el interruptor -h para conectarse al servidor en el cuadro de Windows?
Esto podría resolver sus problemas de juego de caracteres , ya que está utilizando el cliente Linux en la caja original para realizar la importación. (Solo una suposición)
fuente
¿Qué dice el registro de MySQL?
A veces, este error se informa en el cliente si hay un error que no se puede corregir en el servidor. Esto puede ser un indicador de corrupción en el disco de las tablas de la base de datos.
fuente
¿Tu cuenta tenía una contraseña? Quizás necesite agregar el modificador -p:
fuente