es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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”:

    $ mysql -u root -p
    
    mysql> drop database mysql;
    mysql> create database mysql;
    

    Luego, puedes restaurar el archivo de copia de seguridad de la siguiente manera:

    $ mysql -u root -p mysql < mysql_backup.sql
    

    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á.

Comments are closed.