sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sikkerhedskopieres hele MySQL-databasen med alle brugere og tilladelser og adgangskoder?

På det mest basale er mysqldump-kommandoen du kan bruge:

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

Det vil inkludere mysql-databasen, som vil have alle brugere/privs-tabeller.

Der er ulemper ved at køre dette på et produktionssystem, da det kan forårsage låsning. Hvis dine borde er små nok, har det muligvis ikke en væsentlig indflydelse. Du vil prøve det først.

Men hvis du kører et rent InnoDB-miljø, kan du bruge --single-transaction flag, som vil oprette dumpet i en enkelt transaktion (hent det) og dermed forhindre låsning på databasen. Bemærk, der er hjørnetilfælde, hvor den indledende FLUSH TABLES kommando, der køres af dumpen, kan låse tabellerne. Hvis det er tilfældet, dræb dumpen og genstart den. Jeg vil også anbefale, at hvis du bruger dette til backup-formål, skal du bruge --master-data flag også for at få de binære log-koordinater, hvorfra dumpet blev taget. På den måde, hvis du har brug for at gendanne, kan du importere dump-filen og derefter bruge mysqlbinlog kommando for at afspille de binære logfiler fra den position, hvor dette dump blev taget.



  1. Er der nogen måde at løse det kendte problem i Spring Boot ved forbindelse til en MySQL-database med mellemeuropæisk tidszone?

  2. Sådan skriver du migrering for at ændre den primære nøgle af modellen med ManyToManyField

  3. Hvad knytter Hibernate en boolesk datatype til, når der som standard bruges en Oracle-database?

  4. Sådan fungerer SQLite Ltrim()