MySQL, cambiar codeset del dump

A quién no le tiene pasado que saca un dump de la base de datos y la lleva a otro servidor y al importarla ve que los acentos o las ñ's no se visualizan correctamente. Esto es por el codeset que usaba el servidor origen y que el servidor destino no emplea, por lo que se hace un poco difícil trabajar así.
La solución más rápida es repasar todos los textos e ir cambiando los caracteres 'raros' por unos visibles y luego guardar nuevamente. Esto puede llegar a ser un trabajo tedioso y muy molesto, especialmente si tenemos que hacerlo en una gran cantidad de noticias.
Para evitarlo, podemos hacerlo de dos formas.
  1. Sacar el dump en el codeset que nos interese
    Esta es una forma muy simple de atajar el problema. Si sabemos que el servidor destino no va a comprender un codeset determinado, forzamos a MySQL a exportar los datos en el que nos interese y así a la hora de importarlo ya tendremos el trabajo hecho.
    shell> mysqldump -p --default-character-set=utf8 > mysql.sql
    
  2. Transformar el dump al codeset deseado antes de importarlo
    Si no podemos hacer uso de la primera estrategia, nos queda la opción cambiar el codeset justo antes de importarlo. Para eso, GNU/Linux tiene el comando iconv, que nos permite pasar de un code a otro de forma muy rápida y sencilla. Al finalizar ya tendremos el archivo en el code que nos interese importar.
    Por ejemplo a continuación vemos como pasar el dump extraído de un MySQL en Windows a un nuevo servidor en GNU/Linux.
    shell> iconv \
           --from-code=ISO-8859-1 \
           --to-code=UTF-8 \
           dump.sql > new_dump.sql
    


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios