Com fer una còpia de seguretat i restaurar bases de dades MySQL/MariaDB a Linux


Aquest article us mostra diversos exemples pràctics sobre com realitzar diverses operacions de còpia de seguretat de bases de dades MySQL/MariaDB mitjançant l'ordre mysqldump i també veurem com restaurar-los amb l'ajuda de l'ordre mysql i mysqlimport a Linux.

mysqldump és un programa client de línia d'ordres, s'utilitza per abocar bases de dades MySQL locals o remotes o col·leccions de bases de dades per fer còpies de seguretat en un únic fitxer pla.

Suposem que ja teniu MySQL instal·lat al sistema Linux amb privilegis administratius i creiem que ja teniu un petit coneixement de MySQL.

Si no teniu MySQL instal·lat o no teniu cap exposició a MySQL, llegiu els nostres articles a continuació.

  • Com instal·lar MySQL a distribucions basades en RHEL
  • Com instal·lar MySQL a Rocky Linux i AlmaLinux
  • Com instal·lar MySQL a Ubuntu Linux
  • Com instal·lar MySQL a Debian
  • 20 ordres de MySQL (Mysqladmin) per a l'administració de bases de dades a Linux
  • 12 bones pràctiques de seguretat de MySQL/MariaDB per a Linux

Com fer una còpia de seguretat de la base de dades MySQL a Linux?

Per fer una còpia de seguretat de bases de dades o bases de dades MySQL, la base de dades ha d'existir al servidor de bases de dades i heu de tenir-hi accés. El format de l'ordre seria.

# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

Els paràmetres de l'esmentada comanda són els següents.

  • [nom d'usuari] : un nom d'usuari de MySQL vàlid.
  • [contrasenya]: una contrasenya de MySQL vàlida per a l'usuari.
  • [database_name] : un nom de base de dades vàlid del qual voleu fer una còpia de seguretat.
  • [dump_file.sql]: el nom del fitxer de còpia de seguretat que voleu generar.

Per fer una còpia de seguretat d'una base de dades única, utilitzeu l'ordre de la següent manera. L'ordre abocarà l'estructura de la base de dades [rsyslog] amb dades en un únic fitxer d'abocament anomenat rsyslog.sql.

# mysqldump -u root -ptecmint rsyslog > rsyslog.sql

Si voleu fer una còpia de seguretat de diverses bases de dades, executeu l'ordre següent. L'ordre d'exemple següent fa una còpia de seguretat de l'estructura i les dades de les bases de dades [rsyslog, syslog] en un únic fitxer anomenat rsyslog_syslog.sql.

# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql

Si voleu fer una còpia de seguretat de totes les bases de dades, feu servir l'ordre següent amb l'opció –all-database. L'ordre següent fa la còpia de seguretat de totes les bases de dades amb la seva estructura i dades en un fitxer anomenat all-databases.sql.

# mysqldump -u root -ptecmint --all-databases > all-databases.sql

Si només voleu fer una còpia de seguretat de l'estructura de la base de dades sense dades, feu servir l'opció –no-data a l'ordre. L'ordre següent exporta l'estructura de la base de dades [rsyslog] a un fitxer rsyslog_structure.sql.

# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql

Per fer una còpia de seguretat de les dades sense estructura de la base de dades, utilitzeu l'opció –no-create-info amb l'ordre. Aquesta ordre porta la base de dades [rsyslog] Data en un fitxer rsyslog_data.sql.

# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql

Amb l'ordre següent podeu fer una còpia de seguretat d'una sola taula o taules específiques de la vostra base de dades. Per exemple, l'ordre següent només fa una còpia de seguretat de la taula wp_posts de la base de dades wordpress.

# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql

Si voleu fer una còpia de seguretat de diverses o determinades taules de la base de dades, separeu cada taula amb espai.

# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql

L'ordre següent porta la còpia de seguretat de la base de dades del servidor remot [172.16.25.126] [galeria] a un servidor local.

# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql

Com restaurar la base de dades MySQL?

En el tutorial anterior, hem vist com fer la còpia de seguretat de bases de dades, taules, estructures i dades només, ara veurem com restaurar-les utilitzant el format següent.

# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]

Per restaurar una base de dades, heu de crear una base de dades buida a la màquina de destinació i restaurar la base de dades mitjançant l'ordre msyql. Per exemple, l'ordre següent restaurarà el fitxer rsyslog.sql a la base de dades rsyslog.

# mysql -u root -ptecmint rsyslog < rsyslog.sql

Si voleu restaurar una base de dades que ja existeix a la màquina de destinació, haureu d'utilitzar l'ordre mysqlimport.

# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql

De la mateixa manera, també podeu restaurar taules, estructures i dades de bases de dades. Si t'ha agradat aquest article, comparteix-lo amb els teus amics.