PHP geplante Backup MySQL und mysqldump Syntax-Parameter detailliert

PHP geplante Backup MySQL und mysqldump Syntax-Parameter detailliert

Lassen Sie uns zunächst einige gängige Anwendungsbeispiele für den MySQL-Sicherungsbefehl mysqldump vorstellen:

1. mysqldump-Sicherung

Exportieren Sie nur die Tabellenstruktur

d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --no-data --default_character-set=utf8 > d:/Python/data/snsgou_sns_test_table.sql

mysqldump exportiert nur Daten

d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --no-create-info --default_character-set=utf8 > d:/Python/data/snsgou_sns_test_data.sql

mysqldump exportiert alles (einschließlich Tabellenstruktur und Daten)

d:/PHP/xampp/mysql/bin/mysqldump -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --default_character-set=utf8 > d:/Python/data/snsgou_sns_test.sql

2. mysqldump restore (Hinweis: Der Parameter --force bedeutet, dass die Ausführung fortgesetzt wird, wenn ein Fehler auftritt)

d:/PHP/xampp/mysql/bin/mysql -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --force < d:/Python/data/snsgou_sns_table.sql 

d:/PHP/xampp/mysql/bin/mysql -h127.0.0.1 -P3306 -uroot -p123456 snsgou_sns_test --force < d:/Python/data/snsgou_sns_data.sql

/usr/local/mysql/bin/mysql -h127.0.0.1 -P3306 -uroot -p'sg$123456' snsgou_sns_test --force < /root/2/snsgou_sns_test.sql

Hinweis: mysqldump kann nur zum Sichern und Exportieren verwendet werden, zum Wiederherstellen müssen Sie jedoch den Befehl mysql verwenden.

Basierend auf den oben genannten Erkenntnissen wird ein PHP-Skript zur geplanten Sicherung der MySQL-Datenbank kompiliert:

Konfigurationsdatei: db.inc.jb51.net.php

<?php
/**
 * Datenbankkonfigurationsdatei */
$dbs = Array(
  Array(
    'Host' => '127.0.0.1',
    'Port' => 6603,
    'Benutzer' => 'root',
    'pass' => '123456',
    'Datenbankname' => 'xxxyyy',
    'Zeichensatz' => 'utf8'
  ),
  Array(
    'Host' => '127.0.0.1',
    'Port' => 6603,
    'Benutzer' => 'root',
    'pass' => '123456',
    'dbname' => 'yyyzzz',
    'Zeichensatz' => 'utf8'
  ),
);
 
$backupPath = 'F:/mysql_bak/' . Datum('J-m') . '/' . Datum('t');
$oldPath = 'F:/mysql_bak/' . (intval(date('Ym')) - 1);
 
// Hinweis: Wenn der Pfad Leerzeichen enthält, müssen Sie doppelte Anführungszeichen verwenden. $cmd = '"D:/Programme/MySQL/MySQL Server 5.5/bin/mysqldump"';
 
// Alles exportieren $cmd .= " -h%s -P%s -u%s -p%s %s --default_character-set=%s > %s";
 
//Nur die Tabellenstruktur exportieren//$cmd .= " -h%s -P%s -u%s -p%s %s --no-data --default_character-set=%s > %s";
 
// Nur Daten exportieren //$cmd .= " -h%s -P%s -u%s -p%s %s --no-create-info --default_character-set=%s > %s";

Sicherungsdatei: backup_db.php

<?php
/**
 * Datenbank sichern */
 
Zeitlimit festlegen(0);
definieren('ROOT_PATH', dirname(__FILE__));
 
wenn (!@include ROOT_PATH . '/db.inc.jb51.net.php') {
  echo 'Argumente-Fehler';
  //schreiben('Argumente Fehler');
  Ausgang (1);
}
 
// Neues Backup-Verzeichnis erstellen new_mkdir($backupPath);
 
// Daten von vor einem Monat löschen new_rmdir($oldPath);
 
 
//Batch-Backup der Datenbank foreach ($dbs as $db) {
  $cmd2 = '';
  wenn (isset($db['name'])) {
    $fileName = $backupPath . '/' . $db['name'] . '_' . date('Jmd') . '_' . time() . '.sql';
    $cmd2 = sprintf($cmd, $db['Host'], $db['Port'], $db['Benutzer'], $db['Passwort'], $db['Name'], $db['Zeichensatz'], $Dateiname);
    //schreiben($cmd2);
    versuchen {
      exec($cmd2);
    } Fang (Ausnahme $e) {
      // Fehlerprotokoll schreiben (weggelassen)
      echo $e->getMessage();
    }
  }
}
 
 
/**
 * Ordner erstellen *
 * @param string $path Ordnerpfad* @param int $mode Zugriffsrechte* @param boolean $recursive ob rekursiv erstellt werden soll*/
Funktion new_mkdir($Pfad = '', $Modus = 0777, $rekursiv = true) {
  clearstatcache();
  if (!is_dir($pfad)) {
    mkdir($Pfad, $Modus, $rekursiv);
    chmod($Pfad, $Modus);
    $ret = @touch($Pfad . '/index.html');
    @chmod($Pfad . '/index.html', 0777);
    Rückgabewert: $ret;
  }
 
  gibt true zurück;
}
 
/**
 * Ordner leeren/entfernen*
 * @param string $dirname Ordnerpfad * @param bool $self, ob der aktuelle Ordner gelöscht werden soll * @return bool
 */
Funktion new_rmdir($dirname = '', $self = true) {
  if (!file_exists($dirname)) {
    gibt false zurück;
  }
  wenn (ist_Datei($dirname) || ist_Link($dirname)) {
    returniere unlink($dirname);
  }
  $dir = dir($dirname);
  if ($dir) {
    während (falsch !== $entry = $dir->read()) {
      wenn ($entry == '.' || $entry == '..') {
        weitermachen;
      }
      new_rmdir($dirname . '/' . $entry);
    }
  }
  $dir->close();
  $self && rmdir($dirname);
}
 
/**
 * Datei schreiben *
 * @param string $filename Dateiname * @param string $text zu schreibender Textstring * @param string $openmod Textschreibmodus ('w': überschreiben, 'a': Text anhängen)
 * @return Boolescher Wert
 */
Funktion write_file($Dateiname = '', $Text = '', $OpenMod = 'w') {
  wenn (@$fp = fopen($dateiname, $openmod)) {
    Herde($fp, 2);
    fwrite($fp, $text);
    fclose($fp);
    gibt true zurück;
  } anders {
    gibt false zurück;
  }
}
 
/**
 * Objekte schreiben (einschließlich Zahlen, Zeichenfolgen, Arrays)
 *
 * @param string $text Die zu schreibende Textzeichenfolge * @param string $type Art der Texteingabe ('w': überschreiben, 'a': Text anhängen)
 */
Funktion schreiben($text = '', $typ = 'a') {
  wenn (!is_dir('d:/PHP/xampp/htdocs')) {
    gibt false zurück;
  }
  $Dateiname = 'd:/PHP/xampp/htdocs/write.txt';
 
  $text = "\r\n++++++++++++++++++++++++++++++++++++++++++++\r\n"
    . Datum ('Jahr H:i:s') . "\r\n"
    .print_r($text, true);
  write_file($Dateiname, $Text, $Typ);
}

# Geplante Aufgabenausführung:

d:/PHP/xampp/php/php.exe D:/PHP/xampp/htdocs/BackupDb_git/backup_db.php snsgou.com

# Hinweis: Stellen Sie zunächst sicher, dass der obige Befehl im cmd-Befehl erfolgreich ausgeführt werden kann!

Informationen zum Konfigurieren geplanter Aufgaben unter Windows finden Sie unter: Windows Server 2008 Geplante Aufgabenkonfiguration (Taskplaner) BAT ausführen

In „Neue Aktion“,

"Programm oder Skript": Wählen Sie den PHP-Parser aus, z. B. d:/PHP/xampp/php/php.exe,
"Parameter hinzufügen (optional)": D:/PHP/xampp/htdocs/BackupDb_git/backup_db.php jb51.net

Informationen zum Konfigurieren geplanter Aufgaben in Linux finden Sie unter: Detaillierte Erläuterung des Crontab-Befehls für geplante Aufgaben in Linux

Anhang: Vollständige Liste der mysqldump-Parameter

Parameter Beschreibung

--all-databases , -A

Exportieren Sie die gesamte Datenbank.

mysqldump -uroot -p --all-databases

--all-tablespaces , -Y

Alle Tablespaces exportieren.

mysqldump -uroot -p --alle-Datenbanken --alle-Tablespaces

--no-tablespaces , -y

Exportieren Sie keine Tablespace-Informationen.

mysqldump -uroot -p --alle-datenbanken --keine-tablespaces

--add-drop-Datenbank

Fügen Sie vor der Erstellung jeder Datenbank eine „Drop Database“-Anweisung hinzu.

mysqldump -uroot -p --alle-Datenbanken --add-drop-database

--add-drop-Tabelle

Fügen Sie vor dem Erstellen jeder Tabelle eine Drop-Table-Anweisung hinzu. (Standardmäßig aktiviert. Verwenden Sie --skip-add-drop-table, um die Option zu deaktivieren.)

mysqldump -uroot -p --all-databases (Drop-Anweisung standardmäßig hinzugefügt)

mysqldump -uroot -p --all-databases –skip-add-drop-table (Drop-Anweisung abbrechen)

--add-locks

Fügen Sie vor jedem Tabellenexport LOCK TABLES und anschließend UNLOCK TABLE hinzu. (Standardmäßig aktiviert, verwenden Sie --skip-add-locks, um es zu deaktivieren)

mysqldump -uroot -p --all-databases (LOCK-Anweisung wird standardmäßig hinzugefügt)

mysqldump -uroot -p --all-databases –skip-add-locks (LOCK-Anweisung abbrechen)

--allow-keywords

Ermöglicht die Erstellung von Spaltennamen, die Schlüsselwörter sind. Dies wird dadurch erreicht, dass jedem Spaltennamen der Tabellenname vorangestellt wird.

mysqldump -uroot -p --alle-Datenbanken --allow-keywords

--apply-slave-statements

Fügen Sie vor „CHANGE MASTER“ „STOP SLAVE“ hinzu und fügen Sie am Ende des Exports „START SLAVE“ hinzu.

mysqldump -uroot -p --alle-Datenbanken --apply-slave-statements

--character-sets-dir

Verzeichnis für Zeichensatzdateien

mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets

--Kommentare

Zusätzliche Anmerkungsinformationen. Die Standardeinstellung ist „Ein“, Sie können es mit „--skip-comments“ deaktivieren.

mysqldump -uroot -p --all-databases (Standard-Datensatzkommentare)

mysqldump -uroot -p --all-databases --skip-comments (Kommentare entfernen)

--kompatibel

Die exportierten Daten sind mit anderen Datenbanken oder älteren Versionen von MySQL kompatibel. Der Wert kann ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_tables_options, no_field_options usw. sein.

Um mehrere Werte zu verwenden, trennen Sie diese durch Kommas. Es garantiert keine vollständige Kompatibilität, versucht aber, kompatibel zu sein.

mysqldump -uroot -p --all-databases --compatible=ansi

--kompakt

Weniger Ausgabeinformationen exportieren (nützlich zum Debuggen). Entfernen Sie Kommentare, Kopf- und Fußzeilen. Sie können die folgenden Optionen verwenden: --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys

mysqldump -uroot -p --all-databases --compact

--complete-insert, -c

Verwenden Sie eine vollständige Einfügeanweisung (einschließlich Spaltennamen). Dadurch lässt sich die Einfügeeffizienz verbessern, es kann jedoch durch den Parameter max_allowed_packet beeinflusst werden und zu Einfügefehlern führen.

mysqldump -uroot -p --alle-Datenbanken --complete-insert

--compress, -C

Aktivieren Sie die Komprimierung für alle zwischen Client und Server gesendeten Nachrichten.

mysqldump -uroot -p --alle-datenbanken --compress

--create-options, -a

Schließen Sie alle MySQL-spezifischen Optionen in die CREATE TABLE-Anweisung ein. (Standardmäßig geöffnet)

mysqldump -uroot -p --all-databases

--databases, -B

Mehrere Datenbanken exportieren. Alle diesem Parameter folgenden Namensparameter werden als Datenbanknamen betrachtet.

mysqldump -uroot -p --databases test mysql

--debuggen

Gibt Debuginformationen zum Debuggen aus. Der Standardwert ist: d:t:o,/tmp/mysqldump.trace

mysqldump -uroot -p --alle-Datenbanken --debug

mysqldump -uroot -p --all-databases --debug="d:t:o,/tmp/debug.trace"

--debug-check

Überprüfen Sie den Speicher, öffnen Sie die Dateinutzung und beenden Sie das Programm.

mysqldump -uroot -p --alle-Datenbanken --debug-check

--debug-info

Debuginformationen ausgeben und beenden

mysqldump -uroot -p --alle-Datenbanken --debug-info

--default-character-set

Legen Sie den Standardzeichensatz fest. Der Standardwert ist utf8.

mysqldump -uroot -p --all-databases --default-character-set=latin1

--delayed-insert

Daten mit verzögertem Einfügen exportieren (INSERT DELAYED)

mysqldump -uroot -p --alle-Datenbanken --delayed-insert

--delete-master-logs

Protokolle nach Master-Backup löschen. Dieser Parameter aktiviert automatisch --master-data.

mysqldump -uroot -p --all-databases --delete-master-logs

--disable-keys

Referenzieren Sie für jede Tabelle die INSERT-Anweisungen mit den Anweisungen /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; und /*!40000 ALTER TABLE tbl_name ENABLE KEYS */;. Dies ermöglicht einen schnelleren Import der Dump-Datei, da der Index erst nach dem Einfügen aller Zeilen erstellt wird. Diese Option ist nur auf MyISAM-Tabellen anwendbar und ist standardmäßig aktiviert.

mysqldump -uroot -p --all-databases

--dump-Slave

Diese Option bewirkt, dass die Binärprotokollposition und der Dateiname des Masters an die Datei angehängt werden, in die die Daten exportiert werden. Wenn der Wert auf 1 gesetzt ist, wird der Befehl CHANGE MASTER in die Datendatei ausgegeben; wenn der Wert auf 2 gesetzt ist, wird vor dem Befehl eine Erklärung hinzugefügt. Diese Option aktiviert --lock-all-tables, sofern nicht --single-transaction angegeben ist. Diese Option deaktiviert automatisch die Option --lock-tables. Der Standardwert ist 0.

mysqldump -uroot -p --all-databases --dump-slave=1

mysqldump -uroot -p --all-databases --dump-slave=2

--events, -E

Ereignisse exportieren.

mysqldump -uroot -p --alle-Datenbanken --Events

--extended-insert, -e

Verwenden Sie die INSERT-Syntax mit mehreren VALUES-Spalten. Dadurch wird die exportierte Datei kleiner und der Importvorgang beschleunigt. Dies ist standardmäßig aktiviert. Verwenden Sie --skip-extended-insert, um es zu deaktivieren.

mysqldump -uroot -p --all-databases

mysqldump -uroot -p --all-databases--skip-extended-insert (Abbruchoption)

--Felder-terminated-by

Ignorieren Sie das angegebene Feld in der Exportdatei. Wird mit der Option --tab verwendet. Kann nicht mit den Optionen --databases und --all-databases verwendet werden.

mysqldump -uroot -p test test --tab="/home/mysql" --fields-terminated-by="#"

--Felder eingeschlossen durch

Jedes Feld in der Ausgabedatei wird mit dem angegebenen Zeichen umschlossen. Wird mit der Option --tab verwendet. Kann nicht mit den Optionen --databases und --all-databases verwendet werden.

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#"

--Felder optional eingeschlossen

Die Felder in der Ausgabedatei werden optional mit dem angegebenen Zeichen umschlossen. Wird mit der Option --tab verwendet. Kann nicht mit den Optionen --databases und --all-databases verwendet werden.

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#" --fields-optionally-enclosed-by ="#"

--Felder-escaped-by

Die angegebenen Zeichen werden für jedes Feld in der Ausgabedatei ignoriert. Wird mit der Option --tab verwendet. Kann nicht mit den Optionen --databases und --all-databases verwendet werden.

mysqldump -uroot -p mysql-Benutzer --tab="/home/mysql" --fields-escaped-by="#"

--flush-logs

Leeren Sie das Protokoll, bevor Sie mit dem Export beginnen.

Bitte beachten Sie: Wenn Sie mehrere Datenbanken gleichzeitig exportieren (mit der Option --databases oder --all-databases), werden die Protokolle Datenbank für Datenbank geleert. Außer bei Verwendung von --lock-all-tables oder --master-data. In diesem Fall wird das Protokoll einmal geleert und alle entsprechenden Tabellen werden gleichzeitig gesperrt. Wenn Sie daher planen, Protokolle gleichzeitig zu exportieren und zu leeren, sollten Sie --lock-all-tables oder --master-data und --flush-logs verwenden.

mysqldump -uroot -p --alle-datenbanken --flush-logs

--flush-privileges

Geben Sie nach dem Exportieren der MySQL-Datenbank eine FLUSH PRIVILEGES-Anweisung ein. Für eine ordnungsgemäße Wiederherstellung sollte diese Option immer verwendet werden, wenn Sie die MySQL-Datenbank exportieren oder von MySQL-Datenbankdaten abhängig sind.

mysqldump -uroot -p --alle-Datenbanken --flush-privileges

--Gewalt

Ignorieren Sie SQL-Fehler, die während des Exportvorgangs auftreten.

mysqldump -uroot -p --alle-Datenbanken --force

--helfen

Hilfeinformationen anzeigen und beenden.

mysqldump --Hilfe

--hex-blob

Exportiert binäre Zeichenfolgenfelder im Hexadezimalformat. Diese Option muss verwendet werden, wenn Binärdaten vorhanden sind. Die betroffenen Feldtypen sind BINARY, VARBINARY und BLOB.

mysqldump -uroot -p --alle-Datenbanken --hex-blob

--host, -h

Zu exportierende Hostinformationen

mysqldump -uroot -p --host=localhost --all-databases

--ignore-table

Die angegebene Tabelle nicht exportieren. Um mehrere zu ignorierende Tabellen anzugeben, wiederholen Sie den Befehl mehrmals, jeweils eine Tabelle nach der anderen. Jede Tabelle muss sowohl den Datenbank- als auch den Tabellennamen angeben. Zum Beispiel: --ignore-table=database.table1 --ignore-table=database.table2 …

mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

--include-master-host-port

Fügen Sie der von --dump-slave generierten Anweisung „CHANGE MASTER TO..“ „MASTER_HOST=<host>, MASTER_PORT=<port>“ hinzu.

mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port

--insert-ignore

Verwenden Sie beim Einfügen von Zeilen die Anweisung INSERT IGNORE.

mysqldump -uroot -p --host=localhost --all-databases --insert-ignore

--lines-terminated-by

Jede Zeile der Ausgabedatei wird durch die angegebene Zeichenfolge abgegrenzt. Wird mit der Option --tab verwendet. Kann nicht mit den Optionen --databases und --all-databases verwendet werden.

mysqldump -uroot -p --host=localhost test test --tab="/tmp/mysql" --lines-terminated-by="##"

--lock-all-tables, -x

Die Commit-Anforderung sperrt alle Tabellen in allen Datenbanken, um die Datenkonsistenz sicherzustellen. Dies ist eine globale Lesesperre und deaktiviert automatisch die Optionen --single-transaction und --lock-tables.

mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables

--lock-tables, -l

Sperren Sie alle Tabellen, bevor Sie mit dem Export beginnen. Sperren Sie die Tabelle mit READ LOCAL, um parallele Einfügungen in MyISAM-Tabellen zu ermöglichen. Für Tabellen, die Transaktionen unterstützen, wie etwa InnoDB und BDB, ist --single-transaction die bessere Wahl, weil hierbei die Tabelle überhaupt nicht gesperrt werden muss.

Bitte beachten Sie, dass beim Exportieren mehrerer Datenbanken --lock-tables die Tabellen für jede Datenbank separat sperrt. Daher kann diese Option die logische Konsistenz der Tabellen in der Exportdatei über verschiedene Datenbanken hinweg nicht garantieren. Der Exportstatus verschiedener Datenbanktabellen kann völlig unterschiedlich sein.

mysqldump -uroot -p --host=localhost --all-databases --lock-tables

--log-Fehler

Warn- und Fehlermeldungen an die angegebene Datei anhängen

mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err

--Stammdaten

Diese Option hängt den Binärprotokollspeicherort und den Dateinamen an die Ausgabedatei an. Wenn der Wert 1 ist, wird der Befehl CHANGE MASTER ausgegeben; wenn der Wert 2 ist, werden vor der Ausgabe des Befehls CHANGE MASTER Kommentarinformationen hinzugefügt. Diese Option aktiviert die Option --lock-all-tables, sofern nicht auch --single-transaction angegeben ist (in diesem Fall wird zu Beginn des Exports kurzzeitig eine globale Lesesperre erworben; weitere Informationen finden Sie weiter unten unter der Option --single-transaction). Diese Option deaktiviert automatisch die Option --lock-tables.

mysqldump -uroot -p --host=localhost --all-databases --master-data=1;

mysqldump -uroot -p --host=localhost --all-databases --master-data=2;

--max_allowed_packet

Die maximale Paketlänge, die der Server senden und empfangen kann.

mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

--net_buffer_length

Puffergröße für TCP/IP- und Socket-Verbindungen.

mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024

--no-autocommit

Umschließen Sie die Tabelle mit Autocommit/Commit-Anweisungen.

mysqldump -uroot -p --host=localhost --all-databases --no-autocommit

--no-create-db, -n

Exportieren Sie nur die Daten, ohne eine CREATE DATABASE-Anweisung hinzuzufügen.

mysqldump -uroot -p --host=localhost --all-databases --no-create-db

--no-create-info, -t

Exportieren Sie nur die Daten, ohne CREATE TABLE-Anweisungen hinzuzufügen.

mysqldump -uroot -p --host=localhost --all-databases --no-create-info

--no-data, -d

Exportieren Sie keine Daten, nur die Datenbanktabellenstruktur.

mysqldump -uroot -p --host=localhost --all-databases --no-data

--no-set-names, -N

Äquivalent zu --skip-set-charset

mysqldump -uroot -p --host=localhost --all-databases --no-set-names

--opt

Entspricht --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys. Diese Option ist standardmäßig aktiviert und kann mit --skip-opt deaktiviert werden.

mysqldump -uroot -p --host=localhost --all-databases --opt

--order-by-primary

Wenn ein Primärschlüssel oder der erste eindeutige Schlüssel vorhanden ist, sortieren Sie die Datensätze jeder Tabelle. Dies funktioniert beim Exportieren einer MyISAM-Tabelle in eine InnoDB-Tabelle, führt jedoch dazu, dass der Export sehr lange dauert.

mysqldump -uroot -p --host=localhost --all-databases --order-by-primary

--password, -p

Passwort für die Verbindung zur Datenbank

--pipe (unter Windows verfügbar)

Herstellen einer Verbindung zu MySQL mithilfe von Named Pipes

mysqldump -uroot -p --host=localhost --all-databases --pipe

--port, -P

Portnummer der Datenbankverbindung

--Protokoll

Zu den verwendeten Verbindungsprotokollen gehören: TCP, Socket, Pipe, Memory.

mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp

--schnell, -q

Puffern Sie keine Abfragen, sondern exportieren Sie direkt in die Standardausgabe. Dies ist standardmäßig aktiviert. Verwenden Sie --skip-quick, um es zu deaktivieren.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quick

--Zitat-Namen,-Q

Verwenden Sie Anführungszeichen (`), um Tabellen- und Spaltennamen einzuschließen. Dies ist standardmäßig aktiviert. Verwenden Sie --skip-quote-names, um es zu deaktivieren.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names

--ersetzen

Verwenden Sie REPLACE INTO anstelle von INSERT INTO.

mysqldump -uroot -p --host=localhost --all-databases --replace

--result-file, -r

Ausgabe direkt in die angegebene Datei. Diese Option sollte auf Systemen verwendet werden, die Wagenrücklauf- und Zeilenvorschubpaare (\\r\\n) für den Zeilenumbruch verwenden (z. B. DOS, Windows). Diese Option stellt sicher, dass nur eine Zeile verwendet wird.

mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

--routines, -R

Exportieren Sie gespeicherte Prozeduren und benutzerdefinierte Funktionen.

mysqldump -uroot -p --host=localhost --all-databases --routines

--set-charset

Fügen Sie den Ausgabedateien „SET NAMES default_character_set“ hinzu. Dies ist standardmäßig aktiviert. Verwenden Sie die Option --skip-set-charset, um es zu deaktivieren.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset

--single-transaction

Diese Option sendet vor dem Exportieren von Daten eine BEGIN-SQL-Anweisung. BEGIN blockiert keine Anwendung und kann die Konsistenz der Datenbank während des Exports sicherstellen. Es funktioniert nur mit Multiversion-Speicher-Engines, nur InnoDB. Diese Option und die Option --lock-tables schließen sich gegenseitig aus, da LOCK TABLES dazu führt, dass alle ausstehenden Transaktionen implizit festgeschrieben werden. Verwenden Sie zum Exportieren großer Tabellen die Option --quick.

mysqldump -uroot -p --host=localhost --all-databases --single-transaction

--dump-Datum

Fügt der Ausgabedatei Exportzeit hinzu. Dies ist standardmäßig aktiviert. Verwenden Sie die Option --skip-dump-date, um es zu deaktivieren.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date

--skip-opt

Deaktivieren Sie die Option --opt.

mysqldump -uroot -p --host=localhost --all-databases --skip-opt

--Steckdosen

Geben Sie den Speicherort der Socket-Datei für die Verbindung mit MySQL an. Der Standardpfad ist /tmp/mysql.sock

mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

--tab,-T

Erstellt tabulatorgetrennte Textdateien für jede Tabelle im angegebenen Pfad. Hinweis: Dies funktioniert nur, wenn mysqldump und der mysqld-Server auf derselben Maschine ausgeführt werden.

mysqldump -uroot -p --host=localhost test test --tab="/home/mysql"

--tables

Ersetzen Sie den Parameter --databases (-B), um den zu exportierenden Tabellennamen anzugeben.

mysqldump -uroot -p --host=localhost --databases test --tables test

--triggers

Auslöser exportieren. Diese Option ist standardmäßig aktiviert, deaktivieren Sie sie mit --skip-triggers.

mysqldump -uroot -p --host=localhost --all-databases --triggers

--tz-utc

Legen Sie oben im Export die Zeitzone TIME_ZONE='+00:00' fest, um die Richtigkeit der TIMESTAMP-Daten sicherzustellen, die in verschiedene Zeitzonen exportiert werden oder wenn Daten in andere Zeitzonen verschoben werden.

mysqldump -uroot -p --host=localhost --all-databases --tz-utc

--user, -u

Geben Sie den Benutzernamen für die Verbindung an.

--verbose, --v

Gibt verschiedene Plattforminformationen aus.

--version, -V

Gibt mysqldump-Versionsinformationen aus und beendet den Vorgang

--wo, -w

Dumpen Sie nur die Datensätze, die durch die angegebene WHERE-Bedingung ausgewählt wurden. Beachten Sie, dass Sie die Bedingung unbedingt in Anführungszeichen setzen müssen, wenn sie Leerzeichen oder für den Befehlsinterpreter spezifische Zeichen enthält.

mysqldump -uroot -p --host=localhost --all-databases --where="Benutzer='root'"

--xml, -X

In das XML-Format exportieren.

mysqldump -uroot -p --host=localhost --all-databases --xml

--plugin_dir

Das Verzeichnis der Client-Plugins, das aus Kompatibilitätsgründen mit verschiedenen Plugin-Versionen verwendet wird.

mysqldump -uroot -p --host=localhost --all-databases --plugin_dir="/usr/local/lib/plugin"

--default_auth

Das Client-Plugin verwendet die Standardberechtigungen.

mysqldump -uroot -p --host=localhost --all-databases --default-auth="/usr/local/lib/plugin/<PLUGIN>"

Oben wird die Verwendung des mysqldump-Befehls durch PHP zur Planung von MySQL-Backups und mysqldump-Syntaxparametern sowie PHP-Beispielcode für geplante Backups vorgestellt. Ich hoffe, es ist für alle nützlich.

Das könnte Sie auch interessieren:
  • mysqldump-Parameter, die Sie möglicherweise nicht kennen
  • Implementierung der MySQL5.7 mysqldump-Sicherung und -Wiederherstellung
  • Detaillierte Erläuterung der Idee, mysqldump + expect + crontab zur Implementierung eines regelmäßigen MySQL-Cold-Backups unter Linux zu verwenden
  • Zusammenfassung der MySql-Import- und Exportmethoden mit mysqldump
  • Detaillierte Erklärung zur Verwendung von MySQL mysqldump
  • So verwenden Sie mysqldump für vollständige und zeitpunktbezogene Sicherungen
  • Docker verwendet den Befehl mysqldump, um MySQL-Daten im Projekt zu sichern und zu exportieren
  • MySQL-Datenmigration mit dem Befehl MySQLdump
  • Detaillierte Erklärung zur Verwendung des MySQL-Sicherungsskripts mysqldump
  • Detaillierte Erklärung zum Exportieren von Datenbank-, Daten- und Tabellenstrukturen mit Linux mysqldump
  • Detaillierte Diskussion zum Thema mysqldump-Datenexport
  • Verwendung des offiziellen MySQL-Exporttools mysqlpump

<<:  Tutorial-Diagramm zur Installation von CentOS 7.3 auf einer virtuellen VMware-Maschine

>>:  Detaillierte Erklärung der Angular-Komponentenprojektion

Artikel empfehlen

So konfigurieren Sie /var/log/messages im Ubuntu-Systemprotokoll

1. Problembeschreibung Heute muss ich die Systemp...

Docker stellt nginx bereit und mountet Ordner und Dateioperationen

Während dieser Zeit habe ich Docker studiert und ...

Docker View-Prozess, Speicher und Cup-Verbrauch

Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...

So fügen Sie Anführungszeichen in HTML-Titel ein

<a href="https://www.jb51.net/" titl...

So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Herunterladen und installierenUmgebungsvariablen ...

Sprungcode für HTML-Seite

Speichern Sie den folgenden Code als Standard-Home...

Wie verfolgt Vue Datenänderungen?

Inhaltsverzeichnis Hintergrund Beispiel Missverst...

Vue-Handschrift-Ladeanimationsprojekt

Wenn die Seite nicht reagiert, ist die Anzeige de...

Detaillierte Erläuterung der Vue-Projektverpackung

Inhaltsverzeichnis 1. Zugehörige Konfiguration Fa...