77282
Goto Top

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?

Content-ID: 298600

Url: https://administrator.de/contentid/298600

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

114757
114757 09.03.2016 aktualisiert um 09:21:30 Uhr
Goto Top
Henere
Henere 09.03.2016 um 09:52:15 Uhr
Goto Top
Wenn installiert, kannst auch phpmyadmin nehmen. Je nachdem wie Du Zugriff auf den Server hast.
119944
119944 09.03.2016 um 14:31:48 Uhr
Goto Top
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
Head-Crash
Head-Crash 09.03.2016 aktualisiert um 18:24:26 Uhr
Goto Top
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!)
Henere
Henere 09.03.2016 um 18:32:28 Uhr
Goto Top
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
Head-Crash
Head-Crash 09.03.2016 um 21:55:43 Uhr
Goto Top
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.
77282
77282 11.03.2016 um 08:27:37 Uhr
Goto Top
Kann man bei mysql nicht sogar einfach die Dateien umkopieren?
Meine das hat mir mal einer erzählt das man gar kein dump machen müsste.
Head-Crash
Head-Crash 11.03.2016 um 08:47:01 Uhr
Goto Top
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.