Vía nulleando.com.ar nos llega un útil tip para convertir el charset de una base de datos MySQL sin perder (ni cambiar) información.
El procedimiento será el siguiente:
Para exportar la base de datos actual, utilizamos el conocido mysqldump:
Abrimos el cliente de línea de comandos de MySQL:
Y creamos una nueva base de datos con el set de caracteres utf8:
Mediante iconv, convertimos el set de caracteres del archivo backup.sql generado anteriormete:
Modificamos, en el archivo de backup, todas las referencias a CHARSET=latin1 por CHARSET=utf8. Esto lo puedes hacer desde cualquier editor de texto (mediante Search and Replace) o con Perl:
Finalmente, importamos a la nueva base de datos, creada con anterioridad, el archivo de backup modificado a utf8:
Vía: nulleando.com.ar
9 Respuestas para "Tip para convertir de latin1 a utf8 en MySQL"
Pero que hago con una base de datos de 50 megas que esta en linea, y no puedo andar jugando con ella como si nada, je je, seguiré buscando…
Inevitablemente esta solución involucra tiempos muertos hasta crear de nuevo la base de datos (o la tabla si hacemos un trabajo más fino).
Un servidor dedicado hace un dump de una base de datos de 300Mb en poco más de tres minutos y si se hace el trabajo delicadamente tabla por tabla (en vez de seleccionar toda la base de datos) se podrían lograr tiempos casi imperceptibles.
entiendo casi todos lo puntos el unico q no entendi fue este
Mediante iconv, convertimos el set de caracteres del archivo backup.sql generado anteriormete:
iconv -f ISO-8859-1 -t UTF-8 backup.sql > backup_utf8.sql
como hago ese punto con iconv? desde el link de iconv q pones? o q?
espero q me ayudes gracias
Hola Tomas!
Tienes que ejecutar desde una consola (terminal) el comando iconv con los argumentos en cuestión “-f ISO-8859-1 -t UTF-8 backup.sql > backup_utf8.sql”
$ iconv -f ISO-8859-1 -t UTF-8 backup.sql > backup_utf8.sql
Donde, backup.sql es el archivo origen (generado con mysqldum) y backup_utf8.sql es el archivo resultante.
si, gracias el problema esque yo, hace poquito usaba linux pero soy novato en linux lo use al rededor de 120 dias pero luego le volvi q quitar me quede con windows por la facilidad de uso ademas q lo eh usado desde pequeño…..
ahora la pregunta esque desde windows como hago el comando? gracias
no mira me auto respondo se necesita una utilidad q se llama libiconv se consigue aqui
http://gnuwin32.sourceforge.net/packages/libiconv.htm
esto sirve para windows, para usuarios de windows, tambien explico q para hacer lo del replacer de latin1 a utf8 pueden usar dreamwaver o un bloc de notas para cambiar todo lo q dice CHARSET=latin1 por CHARSET=utf8, y por ultimo para exportar el archivo dump al pc es con solo entrar a phpmyadmin y undirle exportar y selccionas tu bd y listo! espero q te ayude a ti tambien luciano por q si tienes usuarios windows…si por alguna otra razon vuelvo y te cuento
salu2
Muy buen ejemplo…
chas gracias !!!!
[...] Tip para convertir de latin1 a utf8 en MySQL [...]
Gracias…
Me sirvio n, ya que estaba guardando unas coordenadas de Google Map y no sabia porque me redondeaba los numeros
el problema era por el charset de la base que estaba en latin1
Comentarios: