Seite 1 von 1
mysql-tabelle kopieren
Verfasst: 23.10.2004, 00:24
von Daniela
ich habe hier einen server mit 2 datenbanken drauf, jeweils eigene zugangsdaten für die datenbanken. nun habe ich in der ersten datenbank eine schöne tabelle die ich in die zweite datenbank kopieren muss.
wie stelle ich das am besten an?
nochmal die fakten:
- 1 server
- 2 datenbanken
- 2 zugangsdaten
- 1 tabelle die von datenbank1 nach datenbank2 kopiert werden soll
Verfasst:
von
Hochwertiger Linkaufbau bei ABAKUS:
- Google-konformer Linkaufbau
- nachhaltiges Ranking
- Linkbuilding Angebote zu fairen Preisen
- internationale Backlinks
Wir bieten
Beratung und
Umsetzung.
Jetzt anfragen:
0511 / 300325-0
Verfasst: 23.10.2004, 07:54
von LinkPop
Hallo Daniela,
Du erstellst einfach mit phpMyAdmin einen SQL-Dump der Tabelle.
Tabelle wählen -> Exportieren -> Senden markieren -> OK
Wenn die Tabelle sehr umfangreich ist, nutzt Du am besten die zip-Funktion. Jetzt kannst Du den Dump in die andere Datenbank importieren. (Datei hochladen)
Ist die Tabelle hingegen sehr klein, kannst Du den Dump auch direkt kopieren, d.h. beim Exportieren "Senden" nicht markieren. Dadurch wird Dir der Dump im Browser angezeigt und Du kannst diesen markieren+kopieren und in das SQL-Feld der 2. Datenbank einfügen.
Man kann die Tabelle auch mit phpMyAdmin von einer Datenbank in die andere kopieren, aber ich glaube dazu müßtest Du für beide Datenbanken die gleichen Zugangsrechte haben, so daß beide links im Auswahlframe angezeigt werden.
Wenn das so ist: Tabelle wählen -> Operationen -> "Kopiere Tabelle nach" - Funktion nutzen.
Verfasst: 23.10.2004, 09:53
von Daniela
danke linkpop, ich habe gestern was vergessen zu posten:
das ganze muss automatisiert einmal pro tag per cronjob geschehen, und der cronjob wird sich kaum bewegen lassen das dump zu kopiern

Verfasst: 23.10.2004, 14:39
von [btk]tobi
Als erstes erstellst du ein Dump der 1. Datenbank.
mysqldump -localhost -USER -PASSWORT -DATENBANK > BACKUP.sql
Dann spielst du den Dump einfach wieder in die neue Datenbank ein.
mysql -localhost -USER -PASSWORT -DATENBANK < BACKUP.sql
Das ganze einfach in ein Shellscript und per Cron ausführen.
Verfasst: 23.10.2004, 15:00
von Daniela
ich kann nur scripte ausführen lassen von dem cronjob, da das dann direkt über php läuft.
müsste aber trotzdem machbar sein, oder?
Verfasst: 23.10.2004, 15:04
von manuelfu
logo - wie [btk]tobi schon sagte, wenn Du via Cron ein Script aufrufst, dass einen Dump der 1. Datenbank erstellt und diesen in die 2. wieder einspielt, dann sollte es funktionieren.
Viel Glück,
Gruss,
Manuel
Verfasst: 25.10.2004, 09:27
von Michael
Das geht auch einfacher.
cp /var/lib/mysql/datenbank1/tabelle1.* /var/lib/mysql/datenbank2/
und fertig.
Gruß
Michael
Verfasst: 25.10.2004, 21:43
von Daniela
Code: Alles auswählen
<?
passthru("mysqldump --add-drop-table --host=localhost --user=foo --password=bar foobase footable > footable.sql");
passthru("mysql --host=localhost --user=foo2 --password=bar2 foobase2 < footable.sql");
?>
so sieht das nun bei mir aus, scheint auch wirklich zu funktionieren. der direkte weg über die dateien schien mir unsauber weil da ja grade in dem moment in die datei geschrieben werden kann und das wäre uncool.
noch was zu kritisieren an meiner lösung ausser dass ich noch datei löschen muss und überprüfen ob das kopieren erfolgreich war?