Beispielcode für MySQL-Datensicherung und -wiederherstellung

Beispielcode für MySQL-Datensicherung und -wiederherstellung

1. Datensicherung

1. Verwenden Sie den Befehl mysqldump zum Sichern

Der Befehl mysqldump sichert die Daten in der Datenbank in einer Textdatei. Die Struktur der Tabelle und die Daten in der Tabelle werden in der generierten Textdatei gespeichert.

Das Funktionsprinzip des Befehls mysqldump ist einfach. Es ermittelt zunächst die Struktur der Tabelle, die gesichert werden muss, und generiert dann eine CREATE-Anweisung in einer Textdatei. Konvertieren Sie dann alle Datensätze in der Tabelle in eine INSERT-Anweisung. Dann können Sie mit diesen Anweisungen Tabellen erstellen und Daten einfügen.

1. Sichern Sie eine Datenbank

Grundlegende Syntax von mysqldump:

mysqldump -u Benutzername -p Datenbankname Tabelle1 Tabelle2 ...-> BackupName.sql 

In:

Der Parameter dbname gibt den Namen der Datenbank an;

Die Parameter table1 und table2 geben die Namen der zu sichernden Tabellen an. Wenn sie leer gelassen werden, wird die gesamte Datenbank gesichert.
Die Parametertabelle BackupName.sql dient zur Gestaltung des Namens der Sicherungsdatei. Vor dem Dateinamen kann ein absoluter Pfad angegeben werden. Die Datenbank wird üblicherweise in eine Datei mit der Endung sql aufgeteilt;

Sichern Sie die Personentabelle in der Testdatenbank als Root-Benutzer.

mysqldump -u root -p Testperson > D:ackup.sql

Das generierte Skript sieht wie folgt aus:

Am Anfang der Datei werden die MySQL-Version, der Backup-Hostname und der Datenbankname aufgezeichnet.

Die Kommentare, die in der Datei mit "--" beginnen, sind SQL-Sprachkommentare, und die Kommentare, die mit "/*!40101" und anderen Formen beginnen, beziehen sich auf MySQL. 40101 ist die Versionsnummer der MySQL-Datenbank. Wenn die MySQL-Version höher als 1.11 ist, wird der Inhalt zwischen /*!40101 und */ als SQL-Befehl ausgeführt. Wenn er niedriger als 4.1.1 ist, wird er als Kommentar behandelt.

2. Sichern Sie mehrere Datenbanken

Grammatik:

mysqldump -u Benutzername -p --databases dbname2 dbname2 > Backup.sql

Fügen Sie die Option --databases hinzu, gefolgt von mehreren Datenbanken

mysqldump -u root -p --databases test mysql > D:ackup.sql

3. Sichern Sie alle Datenbanken

Die Syntax für den Befehl mysqldump zum Sichern aller Datenbanken lautet wie folgt:

mysqldump -u Benutzername -p -all-databases > BackupName.sql

Beispiel:

mysqldump -u -root -p -all-databases > D:all.sql

2. Kopieren Sie direkt das gesamte Datenbankverzeichnis

MySQL verfügt über eine sehr einfache Sicherungsmethode, die darin besteht, die Datenbankdateien direkt in MySQL zu kopieren. Dies ist die einfachste und schnellste Methode.

Zuvor müssen Sie jedoch den Server stoppen, um sicherzustellen, dass sich die Datenbankdaten während des Kopiervorgangs nicht ändern. Wenn während des Datenbankreplikationsprozesses Daten geschrieben werden, kommt es zu Dateninkonsistenzen. In einer Entwicklungsumgebung ist das kein Problem, in einer Produktionsumgebung ist es jedoch schwierig, Backup-Server zuzulassen.

Hinweis: Diese Methode ist nicht auf Tabellen anwendbar, die die Speicher-Engine InnoDB verwenden, eignet sich jedoch für Tabellen, die die Speicher-Engine MyISAM verwenden. Gleichzeitig sollte die MySQL-Version beim Wiederherstellen dieselbe sein.

3. Verwenden Sie das Tool mysqlhotcopy für eine schnelle Sicherung

Dass es sich um ein Hot Backup handelt, erkennen Sie bereits am Namen. Daher unterstützt mysqlhotcopy die Sicherung, ohne den MySQL-Server anzuhalten. Darüber hinaus ist die Sicherungsmethode von mysqlhotcopy schneller als mysqldump.

mysqlhotcopy ist ein Perl-Skript, das hauptsächlich in Linux-Systemen verwendet wird. Es verwendet LOCK TABLES, FLUSH TABLES und cp für schnelle Backups.

Prinzip: Zuerst eine Lesesperre auf die zu sichernde Datenbank setzen, dann die im Speicher befindlichen Daten mittels FLUSH TABLES zurück in die Datenbank auf der Festplatte schreiben und abschließend die zu sichernde Datenbankdatei in das Zielverzeichnis kopieren.

Das Befehlsformat ist wie folgt:

[root@localhost ~]# mysqlhotcopy [Option] dbname1 dbname2 Sicherungsverzeichnis/

dbname: Datenbankname;

BackupDir: der Ordner, in dem das Backup abgelegt werden soll;

Allgemeine Optionen:

--help: Hilfe zu mysqlhotcopy anzeigen;
--allowold: Wenn die gleiche Sicherungsdatei im Sicherungsverzeichnis vorhanden ist, fügen Sie der alten Sicherungsdatei _old hinzu.
--keepold: Wenn die gleiche Sicherungsdatei im Sicherungsverzeichnis vorhanden ist, wird die alte Sicherungsdatei nicht gelöscht, sondern umbenannt.
--flushlog: Nach dieser Generierung werden die Aktualisierungen der Datenbank im Protokoll aufgezeichnet;
--noindices: nur Datendateien sichern, keine Indexdateien;
--user=Benutzername: wird verwendet, um den Benutzernamen anzugeben, der durch -u ersetzt werden kann;
--password=Passwort: wird zur Angabe des Passworts verwendet, kann durch -p ersetzt werden. Bei der Verwendung von -p steht zwischen dem Passwort und -p kein Leerzeichen;
--port=Portnummer: wird verwendet, um den Zugriffsport anzugeben, der durch -P ersetzt werden kann;
--socket=Socket-Datei: wird verwendet, um die Socket-Datei anzugeben, die durch -S ersetzt werden kann;

mysqlhotcopy ist nicht in mysql enthalten, Sie müssen das Perl-Datenbankschnittstellenpaket installieren; die Download-Adresse lautet: http://dev.mysql.com/downloads/dbi.html

Derzeit kann dieses Tool nur MyISAM-Tabellen sichern.

2. Datenwiederherstellung

1. Stellen Sie die Datenbank mit dem Befehl mysqldump wieder her

Die Syntax lautet wie folgt:

mysql -u root -p [Datenbankname] < Backup.sq

Beispiel:

mysql -u root -p < C:\backup.sql

2. Stellen Sie die Direktkopie des Verzeichnis-Backups wieder her

Bei dieser Wiederherstellungsmethode müssen Sie sicherstellen, dass die Versionsnummern der beiden MySQL-Datenbanken identisch sind.

Diese Funktion ist für MyISAM-Tabellen gültig, aber nicht für InnoDB-Tabellen. Der Tabellenbereich einer InnoDB-Tabelle kann nicht direkt kopiert werden.

Zusammenfassen

Das könnte Sie auch interessieren:
  • So importieren und exportieren Sie MySQL-Datenbanken (Sichern und Wiederherstellen)
  • MySQL verwendet Befehle zum Sichern und Wiederherstellen der Datenbank
  • PHP implementiert eine MySQL-Datenbank-Sicherungs- und Wiederherstellungsklasseninstanz
  • Tutorial zur Verwendung von innobackupex und xtrabackup zum Sichern und Wiederherstellen großer Datenmengen in MySQL
  • So verwenden Sie MySQL-eigene Befehle zum Implementieren von Datenbanksicherung und -wiederherstellung
  • Zusammenfassung gängiger Befehle zum Sichern und Wiederherstellen von MySQL-Datenbanken
  • So sichern und stellen Sie die MySQL-NDB-Clusterdatenbank wieder her
  • PHP-Code zum Sichern/Wiederherstellen einer MySQL-Datenbank

<<:  Vues Leitfaden zu Fallstricken bei der Verwendung von Drosselungsfunktionen

>>:  Detailliertes Beispiel für das Linux-Allround-Systemüberwachungstool dstat

Artikel empfehlen

Der einfachste Weg, ein Programm beim Start in Linux automatisch auszuführen

Ich habe viele davon gesammelt, aber alle endeten...

Detaillierte Erklärung der HTML-Formularelemente (Teil 2)

HTML-Eingabeattribute Das Value-Attribut Das Valu...

Verwendung von VNode in Vue.js

Was ist VNode In vue.js gibt es eine VNode-Klasse...

Detailliertes Tutorial zur Installation von Centos8 auf VMware

Offizielle Website-Adresse von CentOS https://www...

Der HTML 5-Entwurf wurde kein formeller Standard

<br />Gestern habe ich beim W3C gesehen, das...

Vue verwendet Canvas, um den Bildkomprimierungs-Upload zu realisieren

In diesem Artikel wird der spezifische Code von V...

CSS-Navigationsleistenmenü mit kleinem Dreieck-Implementierungscode

Viele Webseiten haben kleine Dreiecke in ihren Na...

Sortierung und Paginierung von MySQL-Abfragen

Überblick Da wir die Daten normalerweise nicht di...

Wie CSS die Zeit des weißen Bildschirms während des ersten Ladens beeinflusst

Rendering-Pipeline mit externen CSS-Dateien In de...

Einfache Implementierung von HTML zum Erstellen eines persönlichen Lebenslaufs

Lebenslauf-Code: XML/HTML-CodeInhalt in die Zwisc...

So verwenden Sie React-Color zum Implementieren des Front-End-Farbwählers

Hintergrund Wir können react-color verwenden, um ...

jQuery-Plugin zum Erzielen eines Code-Rain-Effekts

In diesem Artikel wird der spezifische Code des j...

6 interessante Tipps zum Einstellen von CSS-Hintergrundbildern

Das Hintergrundbild ist wahrscheinlich eine diese...