Como migrar de MySQL 5.1 a MySQL 5.5 en Windows

No sé porque estos cuates de Oracle no mejoran la forma en hacer upgrades en sus productos. En fin, aquí te dejo que fue lo que hice para migrar mis bases de dtos, usuarios y permisos de sistema. Fue un proceso lento y complicado pero parece que salió muy bien.

Primero lo primero. Debes hacer un dump de tus bases de datos. Ya no sirve eso de copiar la carpeta «data» a la nueva instalación.

Vete a la carpeta bin de tu instalación actual de MySQL. Aqui hago el respaldo de todas mis bases de datos. Observa como utilizo la opción –single-transaction para que no utilice toda la memoria disponible; es decir, que vaya tabla x tabla. Es un poco más lento, pero mucho más seguro.

[powershell]
//Comando para hacer un respaldo de todas las bases de datos
mysqldump.exe -u root -p –all-databases –single-transaction –quick > c:\bk\02-SEP-2011.sql

//Respaldo de solo las tablas db y user de la base de datos mysql
mysqldump.exe -u root -p mysql db user –single-transaction –quick > c:\bk\mysql.db-mysql.user-02-SEP-2011.sql
[/powershell]


Como vamos a regresar todas estas bases de datos (02-SEP-2011.sql) en una instalación de MySQl diferente (porque estamos haciendo un upgrade); edita este archivo y borra la parte donde crea la BD mysql.

Es el bloque que empiza con:

[powershell]

— Current Database: `mysql`

[/powershell]

Hasta el siguiente bloque similar pero con otra BD.

Nota: Para restaurar sola la tabla de usuarios y permisos (mysql.db-mysql.user-02-SEP-2011.sql), agrega la instrucción justo después del comentario Table structure for table `db` casi al principio del archivo:

[powershell]

— Table structure for table `db`

USE `mysql`;
[/powershell]

Listo. Ahora si podemos desinstalar el MySql 5.1.51. Asegurate de eliminar muy bien el servicio de Windows. El desinstalador desde agregar/quitar programas lo hace por ti.

No te va a eliminar tu carpeta «data», asi que siempre es bueno respaldarla, quemarla y borrar esos datos.

Bueno, ahora instalamos la nueva versión de MySQL, la mysql-5.5.15. La descargas desde aca:

http://dev.mysql.com/downloads/mysql/

No me voy a meter en como instalarlo. Solo sigue el Wizard y lo harás bien.

Ya que la instalaste y el servicio esta ejecutandose, vamos a restaurar nuestros datos.

Te vas de nuevo a la carpeta bin en donde instalaste está nueva versión y ejecutas estos comandos en este mismo orden:

[powershell]
//Restaurar todas las bases de datos desde un archivo .sql
mysql -u root -p < c:\bk&#092;&#048;2-SEP-2011.sql

//Restaurar solo las tablas que contiene el archivo .sql dentro de la base de datos mysql
mysql -u root -p mysql < c:\bk\mysql.db-mysql.user-02-SEP-2011.sql
[/powershell]

Por si las moscas, dale un net stop mysql y luego un net start mysql pa que reinicie los logs. ¿Todo bien verdad?

Ahora si, metete al mysql desde comandos o con myphpadmin o mysql-front o el cliente que quieras. Para saber la vesión actual de MySQL. En una ventana de query ejecutamos esto:

[powershell]
SHOW VARIABLES LIKE "%version%";
[/powershell]

Te debe salir entre otras cosas: mysql-5.5.15. Yeah baby!

Al final puedes usar el comando en la carpeta bin mysql_upgrade para verificar que todo quedo bien.

[powershell]
mysql_upgrade –password
[/powershell]

Nota: Necesitas hacerte un archivito de opciones llamado my.cnf en el directorio donde esa tu my.ini. Porque la cosa esta ejecuta varios progrmas y se le olvida con quien te estás logueando. Le pones esto:

[powershell][/powershell]
[client]
# The following password will be sent to all standard MySQL clients
user=root
password=mipassword

[mysql_upgrade]
user=root
password=mipassword
[powershell][/powershell]

Saludos