Posts Tagged ‘ import mysql utf8

Problema de caracteres al importar una base de datos UTF-8 en MySQL

Muchas veces es necesario trasladar bases de datos de una máquina a otra por múltiples motivos (cambio de proveedor, cambio de máquina de desarrollo, etc). La manera más cómoda de hacerlo, si se tiene acceso a las consolas MySQL de ambas máquinas es realizar un volcado en sql desde la máquina origen mediante el comando mysqldump y luego restablecer dicho volcado en la máquina de destino inyectando el script volcado anteriormente mediante la línea de comando de mysql:

mysql -h host -u usuario -p -D basededatos < fichero.sql

Si el servidor de origen y el servidor de destino están configurados exactamente igual en lo que a conjuntos de caracteres se refiere, no habrá ningún problema, sin embargo si las configuraciones son diferentes (el caso más común es utf-8 por un lado y latin-XXX por otro), al utilizar la nueva base de datos observaremos que los caracteres especiales se han convertido en ristras de caracteres raros. La manera de realizar la importación correctamente es utilizar el parámetro "--default_character_set", de modo que la línea de comando quedaría algo así:

mysql -h host -u usuario -p --default_character_set utf8 -D basededatos < fichero.sql

Es importante darse cuenta que este problema no tiene nada que ver con la conexión a la base de datos que se utilice en la aplicación en el nuevo host sino que se trata de un problema relacionado estrictamente con la utilidad de importación de mysql.

@jfcapristan