xtrabackup de 5.1 a 5.5

Puede ser por falta de ganas de actualizar, porque tras una catástrofe en un servidor de base de datos el que encontramos nuevo tiene otra versión, o simplemente como forma de cambio de una versión a otra, pero si, con un backup de xtrabackup pasamos de una versión 5.1 a una 5.5, obtendremos un interesante fallo que no deja arrancar el servicio. Algo similar a esto:
120127 14:18:05 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
120127 14:18:05 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120127 14:18:05 InnoDB: The InnoDB memory heap is disabled
120127 14:18:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120127 14:18:05 InnoDB: Compressed tables use zlib 1.2.3
120127 14:18:05 InnoDB: Using Linux native AIO
120127 14:18:06 InnoDB: Initializing buffer pool, size = 3.0G
120127 14:18:06 InnoDB: Completed initialization of buffer pool
120127 14:18:06 InnoDB: highest supported file format is Barracuda.
InnoDB: 127 rollback segment(s) active.
120127 14:18:06  InnoDB: Waiting for the background threads to start
120127 14:18:07 Percona XtraDB (http://www.percona.com) 1.1.8-20.1 started; log sequence number 910610240524
120127 14:18:07 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
120127 14:18:07 mysqld_safe mysqld from pid file /srv/mysql/mysql.pid ended
Este fallo viene originado por que la base de datos mysql no contiene las tablas que la versión espera y necesita al restaurarla del xtrabackup, como ya se explicó.
Para solucionar este fallo, simplemente hay que instalar el schema base del MySQL.
shell> mysql_install_db --user=mysql --ldata=/srv/mysql
Este proceso no sobrescribirá información importante de la importación, como las demás tablas creadas y sí permitirá crear las tablas que faltan en el MySQL. Tras finalizar su ejecución, se levanta el servicio nuevamente y se comprueba que todo está correcto.
shell> service mysql start
shell> mysql_upgrade -u root
Como nota importante cabe decir que los usuarios, y demás permisos que se almacenan en la base de datos mysql se han perdido, por lo que sí habría que volver a crearlos. No quedan afectados los datos de la base de datos restaurada, eso sí.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios