Copia de seguridad de MySQL no se está restaurando correctamente.
Estoy ejecutando MariaDB en un sistema Ubuntu 20.04. Hice una copia de seguridad de mi base de datos mysql
con el siguiente comando:
mysqldump -u root -p mysql > mysql_backup.sql
Luego creé una nueva tabla en la base de datos mysql
:
use mysql;
create table foo(line blob);
Después restauré mi copia de seguridad (sin eliminar la tabla foo
en la base de datos mysql):
mysql -u root -p mysql < mysql_backup.sql
Ahora, cuando intento crear una tabla llamada foo
, me muestra este error diciendo que ya existe:
ERROR 1050 (42S01): La tabla 'foo' ya existe
¿No debería el proceso de restauración sobrescribir la base de datos existente y restaurar los datos anteriores?
davy.ai
El proceso de restauración no sobrescribirá la base de datos existente y restaurará los datos anteriores si la base de datos contiene objetos que no se incluyeron en la copia de seguridad, como tablas que se crearon después de que se realizó la copia de seguridad. En este caso, el proceso de restauración no eliminará la tabla “foo” porque se creó después de que se realizó la copia de seguridad, y no sobrescribirá ningún otro dato en la base de datos.
Para restaurar el estado anterior de la base de datos “mysql”, debes eliminar la base de datos “mysql” y recrearla antes de restaurar el archivo de copia de seguridad. Esto asegurará que se eliminen todas las tablas existentes y que el archivo de copia de seguridad se pueda restaurar por completo.
Aquí tienes los pasos para eliminar y recrear la base de datos “mysql”:
Luego, puedes restaurar el archivo de copia de seguridad de la siguiente manera:
Esto restaurará la base de datos “mysql” al estado en el que se encontraba cuando se realizó la copia de seguridad, y la tabla “foo” ya no existirá.