77282
09.03.2016
18891
8
0
MySQL Datenbank kopieren
Hallo, wie kopiere ich eine MySQL Datenbank?
Kann ich hier einfach die Dateien kopieren und kann diese auch einfach wieder zurück kopieren, oder muss ich einen Export der Datenbank fahren?
Aus welchen Dateien besteht den eine MySQL DB? Hat hier jede Tabelle eine eigene Datei oder befindet sich die komplette Datenbank in einer Datei?
Kann ich hier einfach die Dateien kopieren und kann diese auch einfach wieder zurück kopieren, oder muss ich einen Export der Datenbank fahren?
Aus welchen Dateien besteht den eine MySQL DB? Hat hier jede Tabelle eine eigene Datei oder befindet sich die komplette Datenbank in einer Datei?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 298600
Url: https://administrator.de/contentid/298600
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
einfach einen mysqldump der DB erzeugen und auf der neuen DB einspielen.
Anleitungen findest du dazu im Internet genug -> siehe Jodels Beitrag.
VG
Val
einfach einen mysqldump der DB erzeugen und auf der neuen DB einspielen.
Anleitungen findest du dazu im Internet genug -> siehe Jodels Beitrag.
VG
Val
Hi,
wie meine Vorgänger geschrieben haben, geht es bequem mit phpMyAdmin (DB auswählen, Operations: copy db).
Für größere Datenbanken solltest Du mysqldump per Konsole verwenden. Falls Du es doch mit phpMyAdmin probieren möchtest, gehst Du auf Export und aktivierst die Komprimierung, zB ZIP
Und auch darauf achten, ob im SQL dump das CREATE DATABASE statement vorhanden ist (Häkchen setzen), sonst musst Du diese vorher anlegen
z. B. so (unter Win)
mysql\bin\mysql -u root -pPASSWORD
CREATE DATABASE testdb;
USE testdb;
SOURCE namedessqldumps.sql;
(sofern gezippt, vorher entpacken. Einfach temporär ins BIN Verzeichnis legen, wo auch die mysql.exe liegt)
Sofern Du die DB auf dem gleichen Server zurückkopierst, sind wohl keine Probleme zu erwarten. Ansonsten könnte es Probleme geben, z.B. mit Timestamps (verschiedene Zeitzonen) oder der verwendeten Codierung
Sofern die Datenbank auf einem Hoster liegt, wo Du nur eingeschränkt Zugriff hast, gibt es spezielle Tools wie z. B. mysqldumper. Diese solltest Du jedoch nur temporär benutzen, da diese oft zahlreiche Angriffsmöglichkeiten für Hacker bieten.
PS: zurück zu Deiner Frage: die DB besteht aus mehreren Dateien im DATA Verzeichnis. Kopieren funktioniert theoretisch, ich würde aber aus unterschiedlichen Gründen davon abraten. Sofern Du es doch so machst, solltest Du unbedingt mysqlcheck (die genaue Syntax ist bisschen tricky, aber googlen hilft) drüber laufen lassen
PPS: wie immer gilt: Backup first! (apache/mysql vorher stoppen!)
wie meine Vorgänger geschrieben haben, geht es bequem mit phpMyAdmin (DB auswählen, Operations: copy db).
Für größere Datenbanken solltest Du mysqldump per Konsole verwenden. Falls Du es doch mit phpMyAdmin probieren möchtest, gehst Du auf Export und aktivierst die Komprimierung, zB ZIP
Und auch darauf achten, ob im SQL dump das CREATE DATABASE statement vorhanden ist (Häkchen setzen), sonst musst Du diese vorher anlegen
z. B. so (unter Win)
mysql\bin\mysql -u root -pPASSWORD
CREATE DATABASE testdb;
USE testdb;
SOURCE namedessqldumps.sql;
(sofern gezippt, vorher entpacken. Einfach temporär ins BIN Verzeichnis legen, wo auch die mysql.exe liegt)
Sofern Du die DB auf dem gleichen Server zurückkopierst, sind wohl keine Probleme zu erwarten. Ansonsten könnte es Probleme geben, z.B. mit Timestamps (verschiedene Zeitzonen) oder der verwendeten Codierung
Sofern die Datenbank auf einem Hoster liegt, wo Du nur eingeschränkt Zugriff hast, gibt es spezielle Tools wie z. B. mysqldumper. Diese solltest Du jedoch nur temporär benutzen, da diese oft zahlreiche Angriffsmöglichkeiten für Hacker bieten.
PS: zurück zu Deiner Frage: die DB besteht aus mehreren Dateien im DATA Verzeichnis. Kopieren funktioniert theoretisch, ich würde aber aus unterschiedlichen Gründen davon abraten. Sofern Du es doch so machst, solltest Du unbedingt mysqlcheck (die genaue Syntax ist bisschen tricky, aber googlen hilft) drüber laufen lassen
PPS: wie immer gilt: Backup first! (apache/mysql vorher stoppen!)
Da ich nachher ne DB importieren muss....
Jemand ne Idee, wie ich bei einem Webspace (nur ftp und phpmya-Zugriff) eine gezippte DB hochladen und importieren kann ?
Die DB hat ~115MB als Zip dann nur noch 25MB. Bei meinem Upload lade ich sonst über 1,5h die Daten hoch... denke das könnte zu nem Timeout kommen bei phpmya
Jemand ne Idee, wie ich bei einem Webspace (nur ftp und phpmya-Zugriff) eine gezippte DB hochladen und importieren kann ?
Die DB hat ~115MB als Zip dann nur noch 25MB. Bei meinem Upload lade ich sonst über 1,5h die Daten hoch... denke das könnte zu nem Timeout kommen bei phpmya
sofern Du an die php.ini rankommst, maximum upload file size zB 128 MB.
Timeouts hoch auf 1200 (=20 Minuten), Webserver danach neu starten
Den SQL dump mit SQL dump file splitter zerstückeln und einzeln jeweils gezippt hochladen. Zwischendurch den aktuellen Stand wegsichern, dann mußt Du bei Problemen, z. B. bei Datei 7von10 nicht wieder ganz von vorne anfangen.
Timeouts hoch auf 1200 (=20 Minuten), Webserver danach neu starten
Den SQL dump mit SQL dump file splitter zerstückeln und einzeln jeweils gezippt hochladen. Zwischendurch den aktuellen Stand wegsichern, dann mußt Du bei Problemen, z. B. bei Datei 7von10 nicht wieder ganz von vorne anfangen.
technisch klappt das in vielen Fällen. Aber Du kopierst damit auch viel Müll mit und gerade auf produktiv genutzten Systemen würde ich die dafür vorgesehenen Funktionen verwenden. Wäre ich ein Datenbankservice, würde ich ziemlich ungehalten darauf reagieren, wenn man mir eine gesamte DB unter den Hintern schiebt.
Export, Import, dann mysqlchk, Zugriffsberechtigungen checken, Dokumentieren. So hast Du auch kein Problem, sofern es sich um unterschiedliche mysql-Versionen handelt.
Export, Import, dann mysqlchk, Zugriffsberechtigungen checken, Dokumentieren. So hast Du auch kein Problem, sofern es sich um unterschiedliche mysql-Versionen handelt.