Meine Datenbank war viel zu groß für einen manuellen Import über myPHPAdmin, auch gesplittet in 50 MB Häppchen hatte ich keine Chance. Dauernd gab es einen Timeout. Die Lösung ist aber recht simpel. Muss man nur drauf kommen.
Du willst eine Datenbank von einer alten Version (5.7) auf eine neue (8.0) migrieren? Bei Alfahosting heißt die offizielle Antwort: „Erstelle ein Ticket.“
Du willst ein Backup selbst wieder auf den Server spielen? Das ist dasselbe Problem. Es hakt immer an der „zu großen“ Datei.
Inhalt
Es gibt doch Tools dafür!
Grafische Oberflächen wie SQLDumper oder DBeaver versprechen über einen SSH-Tunnel einfachen Zugriff ohne Timeouts auf die Datenbanken, sind aber keine Quelle der Freude. Eine GUI aus der Hölle, Abstürze und rätselhafte Fehlermeldungen sind keine Seltenheit. Besonders bei großen Dateien, die Hunderte Megabyte umfassen, reißt der Biber gerne die Hufe hoch. Was tun, wenn die Klick-Oberflächen scheitern?
Die Antwort ist simpel: Man umgeht die nervigen Tools für die GUI komplett und greift zum Terminal. Das ist der zuverlässigste Weg, weil Du direkt mit dem Server kommunizierst und die fehleranfälligen Zwischenschritte überspringst.
Der manuelle Weg
Um den Import in die Tat umzusetzen, benötigst Du einige einfache Schritte und zwei separate Terminal-Fenster.
1. Die alte Datenbank exportieren
In myPHPAdmin die aktuelle Datenbank der Installation auf den lokalen Rechner exportieren.
2. Eine neue Datenbank anlegen
Im Backend des Webhosters eine neue Datenbank mit einem neuen Benutzer anlegen. Die Zugangsdaten kopieren, die benötigst Du gleich wieder.
3. Den sicheren Tunnel graben
Bevor wir Daten in die neue Datenbank kopieren, bauen wir einen verschlüsselten Tunnel. So gibst Du vor, dass Du Dich auf dem Server selbst befindest. Gib den folgenden Befehl im ersten Terminalfenster ein und lass es einfach offen.
ssh -L 3307:127.0.0.1:3307 benutzername@server -N
Dein Passwort wird abgefragt. Danach blinkt nur der Cursor, das ist normal. Fenster/Tab offen lassen!
4. Die Daten hinüberschaufeln
Öffne ein zweites Terminal-Fenster. Jetzt kommt der Hauptbefehl. Er schaufelt Deine große SQL-Datei zeilenweise durch den Tunnel in die Datenbank. Achte darauf, ob der Port auch 3307 und nicht 3306 ist. Bei Alfa scheinen die neuen DBs alle den 3307 zu bekommen.
mysql -u datenbankbenutzer -h 127.0.0.1 -P 3307 -p datenbankname < /pfad/zu/deiner/datei.sql
Nachdem Du den Befehl eingegeben hast, fragt Dich das Terminal nach dem Datenbank-Passwort. Gib es ein und drücke Enter. Jetzt ist Geduld gefragt. Beide Terminal-Fenster zeigen nur den blinkenden Cursor, denn der Import arbeitet im Hintergrund.
5. Kontrolle
PHPmyAdmin aufrufen und gelegentlich Strg + R drücken. Es sollten, solange die Terminal-Fenster nichts anderes anzeigen, regelmäßig neue Tabellen erscheinen.


