MySQL-Datenbanken Importieren und Exportieren per PHP-Skript

Wer in seinem Tarif keinen SSH-Zugang hat muss sich bei MySQL-Sicherungen entweder mit dem PHPmyAdmin (der ab einer Datenbankgröße von wenigern MB ohnehin ganz aufgibt) rumärgern oder er greift zum Import per Skript.

Folgende Skripte dienen zum Export und Import von MySQL Datenbanken. Der Datenbank Dump wird hier nicht gepackt, bzw. es wird erwartet dass er ungepackt vorliegt.
Eventuelle Fehlermeldungen werden über das Skript ausgegeben.

Hier das Import-Skript. Wichtig ist, dass die Werte für Hostname, Datenbankname, Benutzername, passwort und Name des MySQL-Dumps am Anfang angepasst werden an die Daten der jeweiligen MySQL-Datenbank ($HOSTNAME, $MYSQL_PASSWORD, $MYSQL_USER, $MYSQL_DATABASENAME, $DUMPFILENAME).

Das Skript wird dann ganz normal über den Browser aufgerufen (http://domain.tld/import.php).

Import-Skript:

<?php

//Hostname/Servername des Datenbankservers
$HOSTNAME = "db1234567.db.1and1.com";

//Passwort für die MySQL-Datenbank in die importiert wird
$MYSQL_PASSWORD = "XYZ";

//Benutzername der MySQL-Datenbank in die importiert wird
$MYSQL_USER = "dbo1234567";

//Datenbankname der MySQL-Datenbank in die importiert wird
$MYSQL_DATABASENAME = "db1234567";

//Name der Datei die importiert werden soll. Der Dump darf nicht gepackt sein.
$DUMPFILENAME = "dump.sql";

 

$cmd = "/usr/bin/mysql --host=".$HOSTNAME." --password=".$MYSQL_PASSWORD." --user=".$MYSQL_USER." ".$MYSQL_DATABASENAME." < ".$DUMPFILENAME;

echo "<html>\n<head>\n<title>MySQL-Import</title>\n</head>\n<body style='background-color:#FDF8CE;'>\n";
echo "<span style='font-family:tahoma,geneva,sans-serif;'>\n";

echo "<h1><strong>MySQL Import-Skript</strong></h1>\n";

echo "<hr/>\n";
echo "<b>Ausgeführter Befehl:</b><br>";
echo $cmd."<br><br>";
echo "<hr/>\n";

          $proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
          fwrite($pipes[0], '');fclose($pipes[0]);
          $stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
          $stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
          $rtn=proc_close($proc);
          echo "<b>Errors:</b> ".$stderr."<br><br>\n";
          echo "<b>Output:</b> ".$stdout."<br><br>\n";
          echo "<b>Returns:</b> ".$rtn."<br><br>\n";

echo "<hr/>\n";
echo "</span><br>\n";
echo "<strong><span style='font-size:10px;'><span style='font-family: tahoma,geneva,sans-serif;'><a style='text-decoration: none' href='https://sinnfragen.mzimmer.com/'>Bow Ties are cool</a></span></span></strong>\n";
echo "</body>\n</html>\n";

 

?>

 

Export-Skript:

<?php

//Hostname/Servername des Datenbankservers
$HOSTNAME = "db1234567.db.1and1.com";

//Passwort für die MySQL-Datenbank in die exportiert wird
$MYSQL_PASSWORD = "XYZ";

//Benutzername der MySQL-Datenbank in die exportiert wird
$MYSQL_USER = "dbo1234567";

//Datenbankname der MySQL-Datenbank in die exportiert wird
$MYSQL_DATABASENAME = "db1234567";

//Name der Datei in die exportiert werden soll.
$DUMPFILENAME = "dump.sql";

$cmd = "/usr/bin/mysqldump --host=".$HOSTNAME." --password=".$MYSQL_PASSWORD." --user=".$MYSQL_USER." ".$MYSQL_DATABASENAME." > ".$DUMPFILENAME;

echo "<html>\n<head>\n<title>MySQL-Export</title>\n</head>\n<body style='background-color:#D5FDCE;'>\n";
echo "<span style='font-family:tahoma,geneva,sans-serif;'>\n";

echo "<h1><strong>MySQL Export-Skript</strong></h1>\n";

echo "<hr/>\n";
echo "<b>Ausgeführter Befehl:</b><br>";
echo $cmd."<br><br>";
echo "<hr/>\n";

          $proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
          fwrite($pipes[0], '');fclose($pipes[0]);
          $stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
          $stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
          $rtn=proc_close($proc);
          echo "<b>Errors:</b> ".$stderr."<br><br>\n";
          echo "<b>Output:</b> ".$stdout."<br><br>\n";
          echo "<b>Returns:</b> ".$rtn."<br><br>\n";

echo "<hr/>\n";
echo "</span><br>\n";
echo "<strong><span style='font-size:10px;'><span style='font-family: tahoma,geneva,sans-serif;'><a style='text-decoration: none' href='https://sinnfragen.mzimmer.com/'>Bow Ties are cool</a></span></span></strong>\n";
echo "</body>\n</html>\n";

?>

 

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.