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.

Share this post

Related post

There are no comment yet.

{ Piensa / Think }

"This is a waste of life. [...] the entire educational system in the modern day is nothing more than a cookie cutter processing plant that prepares humans for mostly predefined occupational roles. This element of human life has become so traditionally ingrained, that many falsely consider the nature of ‘having a job’ some form of human instinct. Even parents will ask their kids “What do you want to be when you grow up?” as though there was only one thing. This is disturbing and a violation of human potential." - The Zeitgeist Movement


"He aprendido que hay cosas que pueden ser comprendidas pero que nunca podrán ser explicadas con palabras sin desvirtuar su grandeza" - Andrés Pascual


"You never change things by fighting the existing reality. To change something, build a new model that makes the existing model obsolete." - Buckminster Fuller


"... I am the master of my fate. I am the captain of my soul." - William Ernest Henley