572 Stimmen

Wie erstellt man ein Backup einer einzelnen Tabelle in einer MySQL-Datenbank?

Standardmäßig, mysqldump nimmt die Sicherung einer gesamten Datenbank vor. Ich muss eine einzelne Tabelle in MySQL sichern. Ist das möglich? Wie kann ich sie wiederherstellen?

1064voto

Ozair Kafray Punkte 13142

Dump und Wiederherstellung einer einzelnen Tabelle aus .sql

Abladen

mysqldump db_name table_name > table_name.sql

Dumping aus einer entfernten Datenbank

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

Für weitere Informationen:

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

Wiederherstellen

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

oder in einer Zeile

mysql -u username -p db_name < /path/to/table_name.sql


Dump und Wiederherstellung einer einzelnen Tabelle aus einem komprimierten Format (.sql.gz)

Kredit: John McGrath

Abladen

mysqldump db_name table_name | gzip > table_name.sql.gz

Wiederherstellen

gunzip < table_name.sql.gz | mysql -u username -p db_name

20 Stimmen

SQL lässt sich in der Regel gut komprimieren - Sie können den obigen Befehl durch gzip leiten, und die resultierende Datei wird viel kleiner sein: mysqldump db_name table_name | gzip > table_name.sql.gz wiederherzustellen: gunzip < table_name.sql.gz | mysql -u username -p db_name

0 Stimmen

Was ist, wenn Sie das Kennwort in der Befehlszeile eingeben wollen? Sie verwenden also bereits -pPASSWORD

1 Stimmen

Mysqldump --where='where_condition', -w 'where_condition' Dump only rows selected by the given WHERE condition.

33voto

Jacob Punkte 40193

mysqldump kann einen Parameter tbl_name annehmen, so dass nur die angegebenen Tabellen gesichert werden.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql

16voto

Robin Gomez Punkte 323

Versuchen Sie

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $line cotent Namen Tabellen ;)

1 Stimmen

Dies ist praktisch, um eine Datenbank in einzelne Tabellenabfragen zu zerlegen - darf ich wissen, was genau die Optionen bewirken?

1 Stimmen

Hallo, -AN(--no-auto-rehash, -A | --skip-column-names, -N Schreiben Sie keine Spaltennamen in die Ergebnisse). -e(--execute=statement, -e Anweisung | Führen Sie die Anweisung aus und beenden Sie sie. Das Standardausgabeformat entspricht dem von --batch.) fuente: dev.mysql.com/doc/refman/5.6/de/mysql-command-options.html

16voto

SAM AB Punkte 137

Sie können entweder mysqldump über die Befehlszeile:

mysqldump -u username -p password dbname tablename > "path where you want to dump"

Sie können auch MySQL Workbench verwenden:

Gehen Sie zu links > Datenexport > Schema auswählen > Tabellen auswählen und klicken Sie auf Export

3 Stimmen

Nur eine kleine Info, Leerzeichen zwischen -p und Passwort weglassen --> -ppassword, ist aber unsicher

15voto

minhas23 Punkte 8655

Wir können einen Mysql-Dump von einer bestimmten Tabelle mit einer bestimmten Bedingung wie unten nehmen

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

Wenn wir eine bestimmte Where-Bedingung zur Tabelle hinzufügen wollen, können wir folgenden Befehl verwenden

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X