ubuntuusers.de

mysql Dateien aus var/lib/mysql zurückspielen

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

joe.schraube

Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

Hallo ich versuche mich ans Wiki zu halten aber es klappt nicht. Ich möchte ein Wiki von Server 1 nach Server 2 umzihen.

Die Methode per PHPmyadmin export zip > Import funzt nicht, es gibt eine Fehlermeldung.

Die Variante die Dateien in var/lib/mysql auszutauschen gefällt mir besser - ich hab Rootrechte. Also kopiere ich den Ordner var/lib/mysql/wiki-xy/ auf dem alten Server, lege auf dem neuen Server per PHP-myadmin eine Tabelle gleichen Namens an. Nun gibt es in var/lib/mysql eien Ordner mit Namen xy-wiki darin liegt eine Datei db.opt. Egal ob ich diese belasse oder auch mit austausche in phpmyadmin sind nur 2 Tabellen zu sehen, nicht die 49 rüberkopierten.

Rechte habe ich geändert mit : sudo chown -R mysql:mysql /var/lib/mysql/

Hinter dem Datenbank Name steht in Klammer (45) also sind die 45 Tabellen schon da, aber angezeigt und verwendet werden sie nicht.

ich häng mal 2 sceenshots ran ( das wiki heist wiki-entheo-5 ) freu mich über Hilfe.

Bilder

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17525

joe.schraube schrieb:

Die Variante die Dateien in var/lib/mysql auszutauschen gefällt mir besser - ich hab Rootrechte.

Nein, diese Variante gefällt mir nicht. Mach ein Backup mit den normalen Tools (mysqldump) und sichere das Zurück auf dem anderen Server. Alles andere ist sinnloses gebastel. Und eigentlich braucht man auch kein phpMySQLAdmin Zeugs...

mfg Betz Stefan

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

ok, das wäre dann analog zum Abschnitt darunter im Artikel MYSQL. Leider sind mir diese Beschreibungen zu skitzenhaft um damit klarzukommen. beim lesen hab ich oft den Eindruck es sei uncool wirklich schritt für schritt zu schreiben wie das geht. Doch dann müssen neulinge wieder im Forum nerven .....

es gibt keinen Eintrag zu mysqldump und im Arkikel : Websitebaker ist es wieder etwas andes beschrieben.

Der Vorteil vom grafischen arbeiten und dem Ersetzen von Dateien ist eben das Intuitive verstehen von : a nach b verschieben , Rechte setzten > fertig

Wenn allerdings zu viele Teile an vielen Orten ineinandergreifen wird das dann unpraktisch. mysqldump --user=wb --password=wb --opt wb > wb.sql

was davon soll durch was ersetzt werden ? wo die Sicherung hingeschrieben wird musste ich auch erst durch suchen erfahren ich hab nur eine reihe div Fehlermeldungen erzeugt.

funktioniert hat nur : mysqldump --opt -u root -p --all-databases > sicherung.sql

Wenn ich Sicherung zurückspielen ausführe, was passiert dann mit den bestehenden Datenbanken ?

Ich möchte eine Datenbank von Server 1 auf Server 2 übertragen.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Dann lies dir doch mal die manpage von mysqldump durch

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

hmmmm ... lasst ihr : " in der DDR zur schule gegangen und deswegen russisch aber kein englisch " als Behinderung und keine Faulheit durchgehen ?

der Googeltranslater wirf bei Fachtexten leider nur Misst aus.

ohh ne deutsche Seite gefunden ich glaubs nicht .... ☺

http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

joe.schraube schrieb:

hmmmm ... lasst ihr : " in der DDR zur schule gegangen und deswegen russisch aber kein englisch " als Behinderung und keine Faulheit durchgehen ?

Gut zu wissen 😉

der Googeltranslater wirf bei Fachtexten leider nur Misst aus.

ohh ne deutsche Seite gefunden ich glaubs nicht .... ☺

http://dev.mysql.com/doc/refman/5.1/de/mysqldump.html

Na siehste 😉 und das > ist ein Shelloperator und schreibt dir die ausgabe der konsole in die angegebene Datei. Die Datei wird in dem Verzeichnis erstellt in dem du dich gerade in der Konsole befindest (abzufragen mit pwd)

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

Die Rechte sind so korrekt laut wiki ; chown -R mysql:mysql /var/lib/mysql/

ich bekomme bei Eingabe von : root@Ubuntu-1004-lucid-64-minimal /var/lib/mysql # mysql db_wiki-entheo-5 < wiki-entheo-5.sql

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Auf die Gefahr hin mich völlig zu blamieren : ich dachte root darf alles überall und so muß nicht besitzer von : /var/lib/mysql/ zu sein um da was zu machen. Das Access denied for user 'root'@'localhost' klingt da aber auch wenn root besitzer von /var/lib/mysql ist kommt die Fehlermeldung.

Ich hoffe ich werde jetzt nicht wegen Grundlagen-dummheit aus dem Forum gesperrt ☺

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Damit ist er mysql User root gemeint. Dieser ist vollkommen unabhängig vom Systemuser root.

mysql -uroot -p < wiki-entheo-5.sql

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

root@Ubuntu-1004-lucid-64-minimal /var/lib/mysql # mysql -uroot -p < wiki-entheo-5.sql

Enter password:

ERROR 1046 (3D000) at line 28: No database selected

root@Ubuntu-1004-lucid-64-minimal /var/lib/mysql # mysql -uroot -p wiki-entheo-5 < wiki-entheo-5.sql

Enter password:

ERROR 1146 (42S02) at line 139: Table 'wiki-entheo-5.externallinks' doesn't exist

???

auch wenn du das Austauschen der Daten im Verzeichnis /var/lib/mysql für sinnloses Gebastelhällst, warum funktioniert es eigentlich nicht ?

Bei Thunderebird z.B: tausche ich auch einfach nur eine Ordner und alle Mails, Filter und Kram sind wieder da. Ich finde so was praktisch und logisch.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

dann ist dein mysqldump nicht korrekt. Wie lautet denn im Moment dein mysqldump Befehl.

weil es nicht gedacht ist dass man die daten in /var/lib/mysql austauscht. Vorallem weil die Struktur ziemlich komplex ist. Direkt die Daten in /var/lib/mysql nimmt man nur im äußersten Notfall her, falls der SErver sich nicht mehr starten lässt und ähnliches.

P.S: Bitte beachte die Forensyntax und setze Konsolenausgaben in Codeblöcke.

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

root@joe-server:/home/joe# mysqldump --opt -u root -p --all-databases > sicherung.sql

noch mal meine Frage : wenn ich die sicherung.sql auf dem neuen Server aufspiele lässt er mir die Daten die da schon sind drauf ?, pakt das aus der sicherung.sql nur dazu ?

Weil mir das unklar ist, hab ich mich nicht getraut das zu probieren.

den Befehl für die spezielle Datenbank, den ich benutzt habe finde ich schon nicht mehr.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Je nach dem, welche Option gewählt wurde. Diese hier löscht die Datenbank, falls vorhanden am neuen Server. Andere Datenbanken bleiben davon unberührt:

mysqldump -uroot -p --add-drop-database -c --databases wiki-entheo-5 > wiki-entheo-5.sql

Am neuen Server

mysql -uroot -p < wiki-entheo-5.sql

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

ok danke so hat es funktioniert, die X.sql datei wird bei deiner Variante jetzt nicht in /var/lib/mysql geschrieben sondern in home/joe aber ist ok, es hat gefunzt, auch wenn ich nur so halb verstehe was ich da tu.

Du hast mir ja schon oft geholfen ... vielen dank wenn du mal was brauchst ..... ?

Joe

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Die *.sql sollte man auch nicht in /var/lib/sql ablegen. Es ist völlig egal wo diese abgelegt wird. Mit mysqldump erzeugst du einfach jede Menge SQL Statements (CREATE, INSERT, etc.) die deinem aktuellen Datanstand entsprechen. Diese sql Files kannst du dann in jeden MySQL Server (bei entsprechender Vermeidung von MySQL spezifischen Dingen sogar in andere SQL-Server) einspielen, da es ganz normale SQL-Anweisungen sind. Kannst dir das vorstellen wie ein einfaches INSERT INTO .... nur in hunderfacher (je nach Größe des Datenbestands) Ausführung.

joe.schraube

(Themenstarter)
Avatar von joe.schraube

Anmeldungsdatum:
24. Januar 2010

Beiträge: 506

Wohnort: Dresden

Möchte den Dump zurücksichern:

mysql -u root -p < sicherung.sql

Server fragt nach passwort, führt ohne Fehlermeldung aus, doch in PHPmyadmin ist keine neu Datenbank zu sehen ???

das pw nach dem ich gefragt werden ist das was ich auch bei der anmeldung in phpmyadmin eingebe richtig ?

Antworten |