Modificar el juego de caracteres de una base de datos y todas sus tablas en MySQL

Puede que en más de una ocasión os hayáis encontrado con problemas de juegos de caracteres utilizando MySQL. Si el problema es que tenéis una arquitectura en un juego de caracteres determinados, con un collation determinado, y necesitáis hacer una modificación de ambos en caliente sin tener que ir tabla a tabla, necesitaréis de este script que os dejo a continuación.

El juego de caracteres al que se modifica todo es utf-8 con el collation general.

<?php
	$db = mysql_connect('dirección_ip','usuario','contraseña');
	if(!$db)
		echo "Imposible conectar";
	mysql_select_db('nombre_base_datos');
	mysql_query('ALTER DATABASE CHARACTER SET utf8');
	$result=mysql_query('show tables');
	while($tables = mysql_fetch_array($result))
		foreach ($tables as $key => $value)
			mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
	echo "Modificaciones correctas";
?>

Acerca de F. Javier Carazo Gil

Casi Ingeniero Informático, co-fundador y administrador de Linux Hispano, co-fundador de Red de Autores y Geometrio, puedes saber más sobre mí, mi vida laboral, mis libros, mis artículos y mi día a día en @fjcarazo y en mi perfil público de LinkedIn.

3 Comentarios:

  1. Pingback: Bitacoras.com

  2. Pingback: Tweets that mention Modificar el juego de caracteres de una base de datos y todas sus tablas en MySQL | Linux Hispano -- Topsy.com

  3. Pingback: Miguelón · Cambiando el collation en MySQL (migrando Moodle =2.0)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.