Los privilegios de MySQL se pueden migrar de varias formas, una de ellas es básicamente exportar e importar la base de datos “mysql” de un servidor a otro. Si no queremos sobreescribir ciertas tablas o registros, lo mejor es ceñirnos únicamente a lo que nos interesa, en este caso los usuarios, passwords y la relación de privilegios para cada una de las bases de datos y tablas del servidor MySQL.
Como he comentado, los usuarios se encuentran en la base de datos de sistema “mysql” y la tabla “user” (mysql.user). Para extraer los privilegios necesitamos dos pasos:
El primer paso consisten en extraer el lista de usuarios del sistema pero construyendo a la vez una consulta SQL para cada uno que nos permita luego extraer la información de cada uno. La consulta es la siguiente. Veis que no accedo a la shell MySQL sino que la ejecuto directamente desde línea de comandos bash para volcarlo a un fichero, esto me permite ahorrarme limpiar posteriormente el formato de tablas, etc:
$ mysql -u root -p -Bse "SELECT