komplette DB "clonen"
frankx
- datenbank
Hellihello,
wie krieg ich denn (PHP, phpMyAdmin) die komplette Datenbank "meineDB" von server example1.com so wie sie ist nach example2.com (anderer server)? Mussich ganze Handbuch von MySQL lesen, oder mysqldump machen oder...???
Dank und Gruß,
Hi,
Hellihello,
wie krieg ich denn (PHP, phpMyAdmin) die komplette Datenbank "meineDB" von server example1.com so wie sie ist nach example2.com (anderer server)? Mussich ganze Handbuch von MySQL lesen, oder mysqldump machen oder...???
Wenn du die Datenbank nur kopieren willst (und nicht ständig synchronisieren) reicht es, wenn du auf example1 einen Dump schreibst und diesen dann auf example2 wieder einspielst.
Das kannst du alles mit phpMyAdmin machen.
Natürlich könntest du es auch auf der Kommandozeile machen, was aber nicht sein muss, wenn du eh phpMyAdmin installiert hast.
mfG,
steckl
Hellihello
wie krieg ich denn (PHP, phpMyAdmin) die komplette Datenbank "meineDB" von server example1.com so wie sie ist nach example2.com (anderer server)? Mussich ganze Handbuch von MySQL lesen, oder mysqldump machen oder...???
Wenn du die Datenbank nur kopieren willst (und nicht ständig synchronisieren) reicht es, wenn du auf example1 einen Dump schreibst
Einen "Dump" schreiben, heißt, den SQL-Server dazu zu bewegen, den Inhalt der spezifizierten Datenbank in einem Standardformat auszugeben? Komplette Struktur, Variablenzuordungen. Es gibt aber nich für jede DB "sowieso" eine solche Datei (aus Sicherheitsgründen vermutlich)?
Dank und Gruß,
Hi,
Einen "Dump" schreiben, heißt, den SQL-Server dazu zu bewegen, den Inhalt der spezifizierten Datenbank in einem Standardformat auszugeben? Komplette Struktur, Variablenzuordungen. Es gibt aber nich für jede DB "sowieso" eine solche Datei (aus Sicherheitsgründen vermutlich)?
Ein Dump ist eine Text-Datei, die aus lauter Sql-Kommandos besteht.
Mit Hilfe dieser kannst du den aktuellen Stand der Datenbank wieder herstellen. Gegebenenfalls auch auf einem anderen Server.
MySql speichert die Datenbanken anders ab. Wenn ich mich richtig erinnere sind das pro Tabelle 3 Dateien.
Diese direkt zu kopieren ist aber äußerst kritisch. Erstens kann es Probleme zwischen verschiedenen mySql-Versionen geben und zweitens kann es sein, dass sich noch Daten im Arbeitsspeicher befinden, die noch nicht in die Files geschrieben wurden.
Also solltest du um eine Datenbank umzuziehen lieber einen Dump verwenden, als die Dateien von mysql direkt zu kopieren.
mfG,
steckl
Hellihello
Also solltest du um eine Datenbank umzuziehen lieber einen Dump verwenden, als die Dateien von mysql direkt zu kopieren.
Der MySQL-Server speichert dann in einem Verzeichnis nach Userwahl, via Parameter (komplette DB, mit allen Tabellen)?. Ich kenn wohl die grundlegenden Funktionen, auch dass ich per Konsole mit dem SQL-Server "sprechen" kann.
SQL>hierBefehl
Gibt der auch (wie --help in der Shell) Beschreibungen zu seinen Funktionen ab? Sowas wie "dump --help"?
Dank und Gruß,
Hi,
Also solltest du um eine Datenbank umzuziehen lieber einen Dump verwenden, als die Dateien von mysql direkt zu kopieren.
Der MySQL-Server speichert dann in einem Verzeichnis nach Userwahl, via Parameter (komplette DB, mit allen Tabellen)?.
Du kannst auswählen was du genau "dumpen" willst. Du kannst einzelne Tabellen oder auch ganze Datenbanken "dumpen".
Im Dumpfile ist dann u.a. der Create-Befehl, der die Datenbank und Tabelle erzeugt und viele Insert-Befehle, die die Tabellen dann mit Inhalten füllen.
Gibt der auch (wie --help in der Shell) Beschreibungen zu seinen Funktionen ab? Sowas wie "dump --help"?
mysqldump ist ein eigenes Programm.
Unter Linux gibt es "man mysqldump" und "mysqldump --help".
mfG,
steckl
Hellihello
mysqldump ist ein eigenes Programm.
Unter Linux gibt es "man mysqldump" und "mysqldump --help".
Dass heißt, es wird nicht im Serverkontext aufgerufen? Bin grad nicht an einem linuxfähigen Rechner. In welchem Verzeichnis legt denn der (My?)SQL-Server seine notwendigen Daten ab?
Dank und Gruß,
Hi,
mysqldump ist ein eigenes Programm.
Unter Linux gibt es "man mysqldump" und "mysqldump --help".Dass heißt, es wird nicht im Serverkontext aufgerufen?
Was verstehst du hier unter Serverkontext?
Bin grad nicht an einem linuxfähigen Rechner.
In welchem Verzeichnis legt denn der (My?)SQL-Server seine notwendigen Daten ab?
Bei mir unter Ubuntu in "/var/lib/mysql/DATENBANKNAME".
Aber das brauchst du nicht, wenn du einen Dump schreibst. Bei dem Befehl mysqldump kannst du angeben wohin der Dump geschrieben wird.
Aber warum benutzt du eigentlich nicht einfach phpmyadmin?
mfG,
steckl
Hellihello
Was verstehst du hier unter Serverkontext?
Na Server-Syntax, anfrage an den Server, wie eine query.
In welchem Verzeichnis legt denn der (My?)SQL-Server seine notwendigen Daten ab?
Bei mir unter Ubuntu in "/var/lib/mysql/DATENBANKNAME".
Aber das brauchst du nicht, wenn du einen Dump schreibst. Bei dem Befehl mysqldump kannst du angeben wohin der Dump geschrieben wird.Aber warum benutzt du eigentlich nicht einfach phpmyadmin?
Jau, machich. Aber vorher ein kurzer versuchter Blick hinter die Kulissen ja auch nicht falsch, oder (;-)? Sprech ich beim nächsten mal am Linuxrechner ein Wörtchen direkt mit der DB (;-).
Dank und Gruß,
Aber warum benutzt du eigentlich nicht einfach phpmyadmin?
Jau, machich. Aber vorher ein kurzer versuchter Blick hinter die Kulissen ja auch nicht falsch, oder (;-)? Sprech ich beim nächsten mal am Linuxrechner ein Wörtchen direkt mit der DB (;-).
Dabei solltest du aber bedenken, dass PHP-Scripte nach einer gewissen Zeit abbrechen, festgelegt in der php.ini
Bei grossen Datenbanken kommst du vermutlich mit phpMyAdmin nicht weiter.
Hellihello
Jau, machich. Aber vorher ein kurzer versuchter Blick hinter die Kulissen ja auch nicht falsch, oder (;-)? Sprech ich beim nächsten mal am Linuxrechner ein Wörtchen direkt mit der DB (;-).
Dabei solltest du aber bedenken, dass PHP-Scripte nach einer gewissen Zeit abbrechen, festgelegt in der php.ini
Bei grossen Datenbanken kommst du vermutlich mit phpMyAdmin nicht weiter.
Zumal man bei normalen Webpaketen ja nicht an die php.ini kommt, aber auch nicht in die Shell. Mit Serverzugriff und mysqldump wäre ja php umgangen, welches ja eh "nur" die mysql-queries direkt durchreicht. Was ist denn aus Deiner Sicht eine "große" Datenbank? 100.000 Einträge, 1.000.000? Ich hatte jetzt mit 5 Spalten und 40.000 Einträgen nicht das Gefühl, auch nur in der Nähe eine "großen" Datenbank zu sein.
Dank und Gruß,
Hallo
Jau, machich. Aber vorher ein kurzer versuchter Blick hinter die Kulissen ja auch nicht falsch, oder (;-)? Sprech ich beim nächsten mal am Linuxrechner ein Wörtchen direkt mit der DB (;-).
Dabei solltest du aber bedenken, dass PHP-Scripte nach einer gewissen Zeit abbrechen, festgelegt in der php.ini
Bei grossen Datenbanken kommst du vermutlich mit phpMyAdmin nicht weiter.Zumal man bei normalen Webpaketen ja nicht an die php.ini kommt, aber auch nicht in die Shell. Mit Serverzugriff und mysqldump wäre ja php umgangen, welches ja eh "nur" die mysql-queries direkt durchreicht.
Den Serverzugriff hast du bei "normalen Webpaketen" aber leider auch nicht. Damit fällt das leider auch weg, außer du hast diesen Zugriff (z.B. lokaler oder dedizierter Server).
Tschö, Auge
Was ist denn aus Deiner Sicht eine "große" Datenbank? 100.000 Einträge, 1.000.000?
Ich würde sagen, ab 1 Mio Einträge. Alles andere ist recht klein ;)
Ich hatte jetzt mit 5 Spalten und 40.000 Einträgen nicht das Gefühl, auch nur in der Nähe eine "großen" Datenbank zu sein.
Nein, da hast du auch keine Laufzeitprobleme. Ich habs mal getestet, phpMyAdmin, bzip-Komprimierung und 400.000 Einträge in der Datenbank (ich glaub 6 Spalten, MyISAM) machten auf meinem alten Server (450MHz, Debian/Sarge, 768 MB RAM, 200GB IDE-Platte). Dauerte ca. 20 Sekunden bis ich den Download angeboten bekommen hab. Auf ner schnelleren Maschine würden da vermutlich um einiges mehr an Einträgen gehen.
Hellihello
Im Dumpfile ist dann u.a. der Create-Befehl, der die Datenbank und Tabelle erzeugt und viele Insert-Befehle, die die Tabellen dann mit Inhalten füllen.
Mit phpmyadmins export kam mir eine Textarea, die enthält dann:
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
Datensatztests
Datensatz
Datensatz
(ID
int(11) NOT NULL auto_increment,Name
varchar(100) NOT NULL default '',Preis
float NOT NULL default '0',Länge
int(11) NOT NULL default '0',Breite
int(11) NOT NULL default '0',Höhe
int(11) NOT NULL default '0',Farbe
int(5) NOT NULL default '0',ID
),Farbe
(Farbe
)Datensatz
Datensatz
VALUES (1, 'erster Testname', 1.11, 300, 400, 500, 2);Hallo
Im Dumpfile ist dann u.a. der Create-Befehl, der die Datenbank und Tabelle erzeugt und viele Insert-Befehle, die die Tabellen dann mit Inhalten füllen.
Mit phpmyadmins export kam mir eine Textarea, die enthält dann:
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
>
> ...
>
> Die doppelten Minuszeichen wohl escape-Zeichen.
Sei leiten halt einen Kommentar ein und hier im Forum (von einem Leerzeichen gefolgt, was auf dein Backup zutrifft) die Signatur. :-)
> Kann ich dann so komplett als query-string übernehme?
»»
»»Bzw. den Inhalt (in dem Fall 50.000 Zeilen) in myAdmins SQL-Textarea eingeben?
So, wie man mit phpMyAdmin ein Backup anlegen kann, kann man es auch wieder in die DB einspeisen. Das wurde hier auch schon angesprochen. Außerdem noch ein ernstgemeinter Tip: Du darfst dich mit den Programmen, die dir zur Verfügung stehen, durchaus beschäftigen.
Tschö, Auge
--
Die deutschen Interessen werden am Liechtenstein verteidigt.
[Veranstaltungsdatenbank Vdb 0.2](http://termindbase.auge8472.de/)
Hellihello
Mit phpmyadmins export kam mir eine Textarea, die enthält dann:
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
> >
> > ...
> >
> > Die doppelten Minuszeichen wohl escape-Zeichen.
>
> Sei leiten halt einen Kommentar ein und hier im Forum (von einem Leerzeichen gefolgt, was auf dein Backup zutrifft) die Signatur. :-)
>
> > Kann ich dann so komplett als query-string übernehme?
> »»
> »»Bzw. den Inhalt (in dem Fall 50.000 Zeilen) in myAdmins SQL-Textarea eingeben?
>
> So, wie man mit phpMyAdmin ein Backup anlegen kann, kann man es auch wieder in die DB einspeisen. Das wurde hier auch schon angesprochen. Außerdem noch ein ernstgemeinter Tip: Du darfst dich mit den Programmen, die dir zur Verfügung stehen, durchaus beschäftigen.
Jau, stimmt schon. Habe mir gestern am computerfreien Sonntag mal Ausschnitte aus Kannengießers MySQL-Buch zur Gemüte geführt. Und hier wurde ja auch schon einiges dazu gesagt. Dass "mysqldump" ein eigenes Linux-Programm ist, dass mit "mysqladmin" auch mysql-Befehle aus einem Textfile an den Datenbankserver übermittelt werden können und dass all diese Dinge auch über die SQL-Shell interaktiv abgewickelt werden könnten. Dass der dump jetzt kein eigenes Datenspeicherformat (a la csv oder serialize) ist, sondern die Verkettung von SQL-Befehlen für den re-import hab ich jetzt auch kapiert. Mir gings dabei eben auch um die beschriebenen Grundlagen, nicht nur um die Menüführung bei phpMyAdmin, die ich zugegebenermaßen noch nicht komplett ausgelotet hab. Wobei das da ja alles recht allumfassend scheint, zumal ja auch die SQL-Befehle immer angezeigt werden.
Dank und Gruß,
[frankx](http://community.de.selfhtml.org/visitenkarten/view.php?key=82)
--
[tryin to](http://sauer-ernst.de) [multitain](http://multitain.de) - Globus = Planet != Welt
Hallo
Jau, stimmt schon. Habe mir gestern am computerfreien Sonntag mal Ausschnitte aus Kannengießers MySQL-Buch zur Gemüte geführt. Und hier wurde ja auch schon einiges dazu gesagt. Dass "mysqldump" ein eigenes Linux-Programm ist, ...
Es ist kein Linuxprogramm, sondern ein Befehl des MySQL-Pakets. Es steht durchaus auch unter Windows zur Verfügung. :-)
Dass der dump jetzt kein eigenes Datenspeicherformat (a la csv oder serialize) ist ...
Das ginge aber auch, zumindest unter phpMyAdmin (genauer hab' ich mich damit auch noch nicht beschäftigt).
Mir gings dabei eben auch um die beschriebenen Grundlagen ...
löblich
... nicht nur um die Menüführung bei phpMyAdmin, die ich zugegebenermaßen noch nicht komplett ausgelotet hab.
Das kann man sich zwar auch alles anlesen, aber im alltäglichen Betrieb benutzt man phpMyAdmin doch eher selten. Es ist also keine Schande nicht alle Möglichkeiten des Programms ad hoc parat zu haben.
Tschö, Auge
Hellihello Auge,
Jau, stimmt schon. Habe mir gestern am computerfreien Sonntag mal Ausschnitte aus Kannengießers MySQL-Buch zur Gemüte geführt. Und hier wurde ja auch schon einiges dazu gesagt. Dass "mysqldump" ein eigenes Linux-Programm ist, ...
Es ist kein Linuxprogramm, sondern ein Befehl des MySQL-Pakets. Es steht durchaus auch unter Windows zur Verfügung. :-)
Aber es ist ein eigenständiges Programm, was auch funktioniert, wenn der MySQL-Server nicht gestartet ist? Zumindest erzeugt es unter GNU/Linux oder sonstigem (Windows) einen eigenen Prozess? Oder anders: es wird in der Shell gestartet, nicht in der SQL-Shell. Und es gibt eine eigene Man-Page. Die gibts ja für SQL-Befehle, die nur in der SQL-Shell laufen, nicht...?
Dank und Gruß,
Moin!
Im Dumpfile ist dann u.a. der Create-Befehl, der die Datenbank und Tabelle erzeugt und viele Insert-Befehle, die die Tabellen dann mit Inhalten füllen.
Mit phpmyadmins export kam mir eine Textarea, die enthält dann:
phpMyAdmin generiert dir auch Dateien direkt zum Download, auf Wunsch auch schon gezippt. Die mußt du dann auf dem Zielsystem nur noch wieder hochladen.
- Sven Rautenberg
Moin!
MySql speichert die Datenbanken anders ab. Wenn ich mich richtig erinnere sind das pro Tabelle 3 Dateien.
Das stimmt für MyISAM-Tabellen, nicht jedoch für InnoDB-Tabellen. Dort sind alle Tabellendaten standardmäßig in einer einzigen Datei gespeichert, sogar datenbankübergreifend. Ggf. sind die Daten auch in mehreren Dateien gespeichert, nur im Ausnahmefall (wenn konfiguriert) schreibt die InnoDB-Engine je Tabelle eine eigene Datei so wie MyISAM - trotzdem ist auch dann immer noch eine zentrale Datei im Spiel.
- Sven Rautenberg
Diese direkt zu kopieren ist aber äußerst kritisch. Erstens kann es Probleme zwischen verschiedenen mySql-Versionen geben und zweitens kann es sein, dass sich noch Daten im Arbeitsspeicher befinden, die noch nicht in die Files geschrieben wurden.
Wenn man es so macht, müssen die Versionen exakt übereinstimmen. Vorkompilierte Pakete verschiedener Distributionen können da Probleme machen, da Suse z.B. überall im Code rumspielt.
In jedem Fall den Server vorher beenden, damit alle daten auf die Platte geschrieben werden.
Dann funktioniert das Kopieren der Dateien recht gut.
Mussich ganze Handbuch von MySQL lesen
ungeachtet der anderen antworten, mir wäre folgende spontan in den sinn gekommen:
den relevanten teil des handbuchs lesen hilft meistens weiter
Hellihello
Mussich ganze Handbuch von MySQL lesen
ungeachtet der anderen antworten, mir wäre folgende spontan in den sinn gekommen:
den relevanten teil des handbuchs lesen hilft meistens weiter
Jap (https://forum.selfhtml.org/?t=175869&m=1156947, steckl und Sven waren dennoch bereit, mir hier ihr Wissen auszugsweise zur Verfügung zu stellen. Manchmal ists doch auch schön, wenn jemand mit einem spricht (;-).
Dank und Gruß,
Jap (https://forum.selfhtml.org/?t=175869&m=1156947, steckl und Sven waren dennoch bereit, mir hier ihr Wissen auszugsweise zur Verfügung zu stellen. Manchmal ists doch auch schön, wenn jemand mit einem spricht (;-).
das ist mir klar - aber mich hat die frage nach "muss ich das GANZE handbuch lesen?" verwundert, mein hausverstand (aka "gesunder menschenverstand") sagt mir, dass das defintiv nicht erforderlich ist :D