Ist das dann quasi so eine Sicherheitsfunktion, die nur das Importieren in die entsprechende DB zulässt?
Wenn Du so willst… Vor allem aber lässt man beim Backup mit mysqldump eigentlich sogar die Option
--no-create-db
tunlichst weg und notiert statt dessen tunlichst
--add-drop-database
Wenn denn der Provider mitspielt, dann gerne. 😉
¹) Solche und andere, nicht vorhersehbare und also nicht berücksichtigbaren Umstände (und davon gibt es sehr, sehr viele) sind übrigens der Grund, warum ich angeblich „fertigen“ Backup+Recovery-Lösungen nicht über den Weg traue und das Zeug lieber selbst scripte.
Dem schließe ich mich an.
Auch wenn ich beim "selber scripten" eher nachvollziehen können muss, was Du da scriptest. 😅
Ich habe die Option -B wieder in das Backupscript eingefügt und in das Importscript habe ich folgendes eingefügt.
$db_host = 'localhost';
$db_user = 'user'; // User der zu rettenden DB
$db_pass = 'pass'; // Passwort der zu rettenden DB
$db_name = 'dbtarget'; // Name der zu rettenden DB (Target)
$wp_path = 'my/path/test.sql.gz'; // die genaue Backupdatei (der sql-dump)
$backup_db = 'dbsource'; // Name der geretteten DB (Source)
// Wenn in dieselbe db wiederhergestellt wird, dann darf USE dbblablub; im Dump stehen bleiben, ansonsten weg damit
if($backup_db != $db_name) {
$backupoption = ' | grep -vP ';
$backupoption .= '"^USE \`';
$backupoption .= $backup_db;
$backupoption .= '\`;$"';
} else {
$backupoption = '';
}
// Dann Backup einspielen:
$sys = '/bin/gunzip -c '.$wp_path.$backupoption.' | /usr/bin/mysql -u'.$db_user.' -p'.escapeshellarg($db_pass).' -h'.$db_host.' -B '.$db_name.' ';
system($sys,$fp);
Jörg