Home   Profil   Fun
#81 Linux  07.08.2009

Einzelne Datenbank aus MySQL-Dump importieren


Das PHP-Skript dumpsplit.php scannt ein MySQL-Dump im SQL-Format und zeigt alle darin enthaltenen Datenbanken an. Alle Zeilen die zur ausgewählten Datenbank gehören inklusive aller Zeilen mit Variablen werden in eine neue Datei geschrieben. Damit ist es möglich eine einzelne Datenbank zu extrahieren und anschließend zu importieren.

Ich habe das Skript mit latin1- und utf8-Tabellen getestet. Trotzdem:
DAS SKRIPT NICHT IN PRODUKTIONSUMGEBUNGEN VERWENDEN! BENUTZUNG AUF EIGENES RISIKO!

Installation:
wget http://www.infosecprojects.net/en/linuxtutorials/dumpsplit.php_0.0.1
mv dumpsplit.php_0.0.1 dumpsplit.php
chmod u+x ./dumpsplit.php

Syntax:
./dumpsplit.php mysqldump database
Das Ergebnis ist ein neues Dump mit dem Namen mysqldump__database.sql. Es enthält nur solche Zeilen aus dem Originaldump die relevant zur ausgewählten Datenbank sind.

Anschließend kann man den Import durchführen:
mysql -uroot -p < mysqldump__database.sql

dumpsplit 0.0.1 download


Beispiel:
dhcppc0:/test # ./dumpsplit.php dump.sql testdb
I will scan mysql dump 'dump.sql' and copy all lines of database 'testdb' into new dump './dump.sql__testdb'.
Scanning dump for databases ...
Found: db12
Found: db13
Found: db14
:-) Found: testdb
Found: mysql
Found: test


:-) Your database was found in the dump.

Feedback is welcome: norbert.klein@infosecprojects.net