.mysql Datei in Maria DB einspielen

violentviper

Lt. Commander
Registriert
Mai 2008
Beiträge
1.690
Hallo,

ich habe einen älteren Mysql Dump , den ich gerne auf einem anderen Server mit MariaDB einspielen möchte. Der Dump von der alten Mysql DB liegt im folgenden Format vor dateiname.mysql.bz2 . Es wird per SSH auf die Maria DB Shell zugegriffen.

Ich fand nach Recherche folgenden Befehl, da der alte Dump komprimiert ist.

bunzip2 < db_filename.sql.bz2 | mysql -u root -p target_db_name;

Nun ist es so, dass wenn ich dies mit meinen Daten füttere, jedes mal einen Syntaxerror hervorruft (You have an error in your SQL syntax). Ich habe zwei Vermutungen, es gibt ein Problem mit .mysql und .sql Dateien, wobei hier auch die Umbenennung nichts am Syntaxerror ändert. Oder muss die Dump Datei in einem bestimmten Ordner liegen, da ich hier einen Pfad zur Dumpdatei mit angebe? Wobei mich da der Syntaxerror auch stutzig macht. Vielleicht brauch ich auch einen anderen Befehl, finde aber immer nur diesen. Leerzeichen und sonstige komische Umlaute enthält der Dateiname der Dump auch keine.

Wer hat eine Vermutung, was hier schief laufen könnte?
 
Zuletzt bearbeitet:
Die Maria wird doch sicher noch mehr ausspucken als nur diesen Fehlertext, also irgendwelche Statement-Schnipsel, was sie nicht parsen kann.
 
Sie sagt jedes mal nur
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'bunzip2 < db_filename.sql.bz2 | mysql -u root -p target_db_name;' at line 1
 
violentviper schrieb:
das sind nur dateiendungen. Den aller meisten programmen ist die dateiendung komplett egal, da sie nichts über die datei aussagt.

Was du machen kannst:
entpack erstmal den dump. und versuch den einzuspielen. Wer weiss ob in deiner umgebung irgend etwas Ticks o.ä ignoriert.
Es gab da vor kurzem einen ZSH bug.

Zeig uns die letzten 10 und ersten 10 zeilen (head -n 10, tail -n 10 ...)

wenn da nichts offensichtlich doof ist und der entpackte import nicht klappt:

importier erst das schema, dann die tabellen einzeln
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: violentviper und andy_m4
Und bei weiteren Fehlern auch die Verbosity hochsetzen, evtl. wird dann noch ein bisschen mehr preisgegeben.
 
violentviper schrieb:
right syntax to use near 'bunzip2 < db_filename.sql.bz2 | mysql -u root -p target_db_name;' at line 1
At line 1 ?
Wie sehen denn die ersten Zeilen der dekomprimierten db_filename.sql.bz2 aus?
Ergänzung ()

Ups. madmax kam mir da wohl etwas zuvor und war gleichzeitig auch noch ausführlicher. :-)
 
  • Gefällt mir
Reaktionen: madmax2010
madmax2010 schrieb:
entpack erstmal den dump. und versuch den einzuspielen.
Wie entpacke ich den dump unter Suse? Mit tar xfvj archiv.mysql.bz2 geht es jedenfalls nicht (tar: This does not look like a tar archive). Mit gunzip ging es auch nicht (unknown suffix -- ignored).
 
madmax2010 schrieb:
bunzip <filename>
Mag er nicht, -bash: bunzip: command not found

Mit bunzip2 file.bz2 sagt er: bunzip2: Can't open input file
 
Can't open input file sagt bz eigentlih nur, wenn du dich beim dateinamen verschrieben hast / die datei nicht da ist.
Wenn due datei existiert sagt es was in der richtung: is not a bzip2 file.


ls -l1 | grep bz

@andy_m4 möglich. dafuer ist bei mir mehr chaos :)
 
Wenn Du die Bash nutzt kannst Du auch einfach die Tab-Completion benutzen. Dann sind Tippfehler beim Dateinamen schon mal so ziemlich ausgeschlossen.
 
Kannst du bitte mal den kompletten output zeigen? Also inkl. Shell Prompt? Und dann bitte noch bzcat db_filename.sql.bz2 | head -1
Das Semikolon am Schluss ist mindestens unnötig, potentiell sogar schon der Fehler.
Jedoch macht mich das stutzig:
check the manual that corresponds to your MariaDB server version for the right syntax to use near 'bunzip2 < db_filename.sql.bz2 | mysql -u root -p target_db_name;' at line 1

Mysql kann nichts von deinem bunzip2 wissen. Daher bitte den kompletten output. Mir scheint als hättest du das im Mysql Prompt eingegeben.
 
  • Gefällt mir
Reaktionen: DarkAngel2401, violentviper und madmax2010
andy_m4 schrieb:
Wenn Du die Bash nutzt kannst Du auch einfach die Tab-Completion benutzen.
Die nutze ich auch.

Ich sehe gerade, dass er es doch entpackt hat, ich bin bloß blind. Nun liegt die Datei nicht mehr im file.mysql.bz2 vor sondern nur noch im file.mysql.

foo_1337 schrieb:
Mysql kann nichts von deinem bunzip2 wissen. Daher bitte den kompletten output. Mir scheint als hättest du das im Mysql Prompt eingegeben.
Genau das war der Fehler :D. Ich dachte ich müsste mich in die Mysql CLI einloggen, um die DB importieren zu können. Vielen Dank für den wertvollen Hinweis.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: foo_1337
Importiert wurde die DB doch nicht. Da meine Linuxumgebung weder bunzip2 noch bzcat kennt. Kommt auch nichts in der Tabcompletion mit Tab , wenn man nur b eingibt.
 
violentviper schrieb:
Ich sehe gerade, dass er es doch entpackt hat, ich bin bloß blind. Nun liegt die Datei nicht mehr im file.mysql.bz2 vor sondern nur noch im file.mysql.
Hä? Ist doch schon entpackt?
 
  • Gefällt mir
Reaktionen: madmax2010
violentviper schrieb:
Da meine Linuxumgebung weder bunzip2 noch bzcat kennt. Kommt auch nichts in der Tabcompletion mit Tab , wenn man nur b eingibt.
?!
<paketmanager> <install> <bunzip(2)>

tab completion braucht es aber auch nicht installiert. das tut einfach. du musst 2x auf tab druecken
 
  • Gefällt mir
Reaktionen: violentviper
madmax2010 schrieb:
<paketmanager> <install> <bunzip(2)>
bzip2 wäre imho richtig als Packagename, aber wie hat @violentviper das denn entpackt bekommen ...

Naja, die entpackte Datei kann er jetzt reinpipen oder in der sql prompt mit source einlesen - und hoffen, dass die Encodings stimmen :p
 
  • Gefällt mir
Reaktionen: madmax2010
Zurück
Oben