vorneweg, ich lasse xampp von einem USB-Stick laufen, daher läuft mysql nicht als dienst und soll das auch gar nicht, da ich keine Änderungen am Rechner vornehmen will, der gerade als Server dient. Das Ganze soll auch von einem DAU zu bedienen sein, also Stick rein, xampp-start.exe doppelklicken und arbeiten, danach xampp-stop und stick wieder raus.
Ich habe ein Script, welches die Datenbank-Dateien in einen Backup-Ordner kopiert. Wenn das ausgeführt wird, ist die Datenbank garantiert nicht in Benutzung, daher sollte es hier keine Probleme geben. Schwierig ist nur die Backups wieder einzuspielen, da Windows den Zugriff blockiert, solange der Mysql-Server läuft. Zumindest die Dateien, auf die kürzlich zugegriffen wurde. Meine Idee war jetzt, den Server kurz runterzufahren, die Dateien auszutauschen, und dann den Server wieder zu starten. Das klappt aber nicht, und Fehlermeldungen seh ich auch keine, außer denen von den misslungenen Lösch- und Kopierbefehlen. Irgendwelche Ideen?
Hier noch der betreffende Scriptausschnitt:
- Code: Select all
if ($_REQUEST["action"]=="BackupLaden")
{
$Name = htmlspecialchars($_POST["Name"]);
$WorkDir = getcwd();
system("../../mysql/bin/mysqladmin --user=pma --password= shutdown");
chdir("../../mysql/data/basar_test");
$ignore = array(1 => ".",
2 => "..",
3 => "Backup");
$Directory = scandir(".");
foreach($Directory as $Eintrag)
{
if (!in_array($Eintrag, $ignore))
{
unlink($Eintrag);
}
}
$ignore = array(1 => ".",
2 => "..");
$Directory = scandir("Backup/$Name");
foreach($Directory as $Eintrag)
{
if (!in_array($Eintrag, $ignore))
{
copy("Backup/$Name/$Eintrag", $Eintrag);
}
}
system("../../mysql/bin/mysqld --defaults-file=../../mysql/bin/my.cnf --standalone --console");
chdir($WorkDir);
}