Migrar mysql 5.1 a 5.7
Me ha tocado migrar un mysql 5.1 a la version 5.7 que trae ubuntu 16.04 LTS, a lo que me encuentro que no solo es hacer un simple dump y cargar la db. A continuación describo los comandos que use para el dump y como resolver el problema del DEFINER para los triggers y procedimientos almacenados que contenga la base de datos.
- Hacer el dumpeo de la base de datos.
mysqldump -u root -p --events --routines --triggers --all-databases > MySQLData.sql
- Remover el parametro DEFINER de nuestro dump
sed -E 's/DEFINER=`[^`]+`@`[^`]+`/DEFINER=CURRENT_USER/g' MySQLData.sql > MySQLData.new.sql
- Restaurar nuestro dump al nuevo servidor
mysql -u root -p < MySQLData.new.sql
- Checar que no haya errores en la base de datos por los cambios de versión
mysql_upgrade -u root -p
Y eso es todo con eso podremos migrar de mysql 5.1 a la 5.7 sin problemas.