Dump einlesen - Umlaute gehen verloren!?
Dump einlesen - Umlaute gehen verloren!?
Hallo,
da ich mir nicht ganz sicher war wo das reinpassen könnte habe ich mal diese Kategorie gewählt.
Hallo,
ich möchte meine Seite auf einen anderen Server umziehen und habe nun die Datenbank exportiert. Anschließend habe ich die Datenbank am neuen Server eingelesen und musste Feststellen, das alle Umlaute wie ä, ö und ü verlorengeganen sind und stattdessen nur ? angezeigt wird.
Beim einlesen wird gefragt welchen Zeichnsatz das Dumpfile hat.
Was muss man dort angeben?
Zur Info, auf dem alten Server läuft:
MySQL 4.0.24_Debian-10sarge1
phpMyAdmin 2.6.2-Debian-3sarge1
Auf dem neuen Server läuft:
MySQL 4.1.10a
phpMyAdmin 2.6.3-pl1
Ach ja, wenn ich das Dumpfile öffne sind die Umlaute noch da,
soll heissen die Umlaute gehen beim einlesen verloren.
Wenn ich über eine Form etwas in die Datenbank (neuer Server)
schreibe werden die Umlaute normal verwendet.
Mfg Ragey
da ich mir nicht ganz sicher war wo das reinpassen könnte habe ich mal diese Kategorie gewählt.
Hallo,
ich möchte meine Seite auf einen anderen Server umziehen und habe nun die Datenbank exportiert. Anschließend habe ich die Datenbank am neuen Server eingelesen und musste Feststellen, das alle Umlaute wie ä, ö und ü verlorengeganen sind und stattdessen nur ? angezeigt wird.
Beim einlesen wird gefragt welchen Zeichnsatz das Dumpfile hat.
Was muss man dort angeben?
Zur Info, auf dem alten Server läuft:
MySQL 4.0.24_Debian-10sarge1
phpMyAdmin 2.6.2-Debian-3sarge1
Auf dem neuen Server läuft:
MySQL 4.1.10a
phpMyAdmin 2.6.3-pl1
Ach ja, wenn ich das Dumpfile öffne sind die Umlaute noch da,
soll heissen die Umlaute gehen beim einlesen verloren.
Wenn ich über eine Form etwas in die Datenbank (neuer Server)
schreibe werden die Umlaute normal verwendet.
Mfg Ragey
Re: Dump einlesen - Umlaute gehen verloren!?
Welcher Zeichensatz im Dumpfile? "od -xa" - was wird für ein "ö" dort angezeigt?ragey wrote: Anschließend habe ich die Datenbank am neuen Server eingelesen und musste Feststellen, das alle Umlaute wie ä, ö und ü verlorengegangen sind und stattdessen nur ? angezeigt wird.
Den Zeichensatz, der im Dumpfile verwendet wird.Beim einlesen wird gefragt welchen Zeichnsatz das Dumpfile hat. Was muss man dort angeben?
SHOW VARIABLES LIKE "%char%" sagt was genau?
Re: Dump einlesen - Umlaute gehen verloren!?
Also ich kann in dem Dumpfile nichts finden was auf einen Zeichensatz hindeutet. Die Umlaute werden in dem File ganz normal angezeigt: ä ö ü Ã? Ã? Ã?
SHOW VARIABLES LIKE "%char%"
Auf dem alten Server angewandt:
character_set latin1
character_sets latin1 big5 cp1251 cp1257 croat czech danish dec8 ...
convert_character_set
Auf dem neuen Server angewandt:
character_set_client utf8
character_set_connection cp1250
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Mfg Ragey
SHOW VARIABLES LIKE "%char%"
Auf dem alten Server angewandt:
character_set latin1
character_sets latin1 big5 cp1251 cp1257 croat czech danish dec8 ...
convert_character_set
Auf dem neuen Server angewandt:
character_set_client utf8
character_set_connection cp1250
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Mfg Ragey
Re: Dump einlesen - Umlaute gehen verloren!?
Das sind Deine Umlaute - Du verwendest iso-8859-1 (latin1) im Dump.ragey wrote:Auf dem alten Server angewandt:
character_set latin1
Das ist ein wenig durcheinander, aber im Großen und Ganzen redest Du mit Deinem Server utf8, auch wenn der die Sachen intern als latin1 speichert. Dadurch werden Deine Umlaute kaputt konvertiert.Auf dem neuen Server angewandt:
character_set_client utf8
character_set_connection cp1250
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Code: Select all
SET NAMES utf8
Re: Dump einlesen - Umlaute gehen verloren!?
Wo muss ich das hier eingeben: SET NAMES latin1 ?
Ich habe es im phpMYadmin unter SQL eingegeben und habe ein OK erhalten.
Wenn ich dann wieder die Abfrage mache sind dort die gleichen werte drin.
Mfg Ragey
Ich habe es im phpMYadmin unter SQL eingegeben und habe ein OK erhalten.
Wenn ich dann wieder die Abfrage mache sind dort die gleichen werte drin.
Mfg Ragey
Re: Dump einlesen - Umlaute gehen verloren!?
Logge Dich mit ssh als root auf Deinem Dedi ein, dafür ist er da. Verwende den MySQL Kommandozeilenclient. Dort gibst Du am "mysql>"-Prompt "SET NAMES latin1" ein, dann liest Du mit "source /pfad/zum/dump.sql" den Dump ein.ragey wrote:Wo muss ich das hier eingeben: SET NAMES latin1 ?
Und bitte schmeiße Deine "Administrationshilfen" wie Plesk, phpMyAdmin und anderes Zeugs weg. Sie behindern Dich nur dabei, Dinge zu lernen und zu verstehen.
Ja. Zwangsläufig. Würdest Du besser verstehen, wie phpMyAdmin, PHP und MySQL zusammenspielen, wäre Dir das klar.Wenn ich dann wieder die Abfrage mache sind dort die gleichen werte drin.
Re: Dump einlesen - Umlaute gehen verloren!?
Ok Ok nur durch Fragen lernt man ok?
Trotzdem Danke.
Trotzdem Danke.
Re: Dump einlesen - Umlaute gehen verloren!?
Wenn Du vor dem "source", und nach dem "SET NAMES" einmal ein "SHOW VARIABLES LIKE '%char%'" machst, sollte dort nun überall "latin1" stehen. Bitte hier pasten.ragey wrote:Ok Ok nur durch Fragen lernt man ok?
Trotzdem Danke.
Re: Dump einlesen - Umlaute gehen verloren!?
Hallo,
vielen Dank es hat funktioniert:
Ich habe mich gerade durch einige Befehle gearbeitet
um das alles ein wenig besser zu verstehen.
Ich hatte zuvor bereits das SQL nochmal via myadmin hochgeladen
und als Zeichensatz latin1 ausgewählt.
Danach waren die Umlaute noch da :)
Danke Mfg Ragey
vielen Dank es hat funktioniert:
Code: Select all
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
um das alles ein wenig besser zu verstehen.
Ich hatte zuvor bereits das SQL nochmal via myadmin hochgeladen
und als Zeichensatz latin1 ausgewählt.
Danach waren die Umlaute noch da :)
Danke Mfg Ragey
Re: Dump einlesen - Umlaute gehen verloren!?
Hoppla
gibt wohl doch noch eine unstimmigkeit,
und zwar hab ich das hier gemacht:
Aber er wirft oben einen Fehler aus.
Desweiteren ist im PHPMyadmin noch alles beim alten!?
gibt wohl doch noch eine unstimmigkeit,
und zwar hab ich das hier gemacht:
Code: Select all
mysql> g SHOW VARIABLES LIKE "%char%";
ERROR:
No query specified
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
Desweiteren ist im PHPMyadmin noch alles beim alten!?
Re: Dump einlesen - Umlaute gehen verloren!?
[quote="ragey"]
Damit die Ã?nderung wirksam wird, mußt den MySQL Serverprozeß neu starten:
Danach sollte SHOW STATUS LIKE "%char%" automatisch alles als latin1 anzeigen (bis auf system, das ist immer utf8).
Beachte, daß bereits angelegte Datenbanken möglicherweise mit DEFAULT CHARACTER SET utf8 angelegt worden sind. "SHOW CREATE DATABASE <datenbankname>G" wird Dir das sagen.
Code: Select all
mysql> g SHOW VARIABLES LIKE "%char%";
ERROR:
No query specified
...[/quote]
g und ; sind gleichbedeutend und beenden ein Statement. Das Ergebnis wird als Tabelle gedruckt.
G beendet ebenfalls ein Statement, das Ergebnis wird "vertikal" gedruckt.
[quote]Aber er wirft oben einen Fehler aus.
Desweiteren ist im PHPMyadmin noch alles beim alten!?[/quote]
SET NAMES setzt den Zeichensatz in Deiner Session, also in diesem Fall innerhalb Deiner Verbindung des MySQL Command Line Client. Verläßt Du diesen, beendet er Deine Session, und die nächste Session wird wieder mit dem normalen Zeichensatz angelegt.
phpMyAdmin baut mit jeder Seite (also nach jedem Kommando) eine neue Session auf, daher funktioniert SET NAMES dort nicht dauerhaft.
Du kannst in der [client] und in der [mysqld]-Sektion Deiner /etc/my.cnf (Debian: /etc/mysql/my.cnf) den gewünschten Systemzeichensatz eintragen. Du mußt dies an beiden Enden tun:
[code]
[client]
default-character-set = latin1
[mysqld]
default-character-set = latin1
Code: Select all
root@localhost:~ # /etc/init.d/mysql stop
root@localhost:~ # /etc/init.d/mysql start
Beachte, daß bereits angelegte Datenbanken möglicherweise mit DEFAULT CHARACTER SET utf8 angelegt worden sind. "SHOW CREATE DATABASE <datenbankname>G" wird Dir das sagen.
Re: Dump einlesen - Umlaute gehen verloren!?
Hi leider habe ich das gleiche Problem und auch nach dem einfügen der beagten codezeilen klappt es nicht die datenbank mit umlauten einzufügen.
Ich habe die sicherung mit phpmyadmin erstellt und dort sind alle umlaute vorhanden egal welche datenbank ich nehme. Versuche ich diese aber mit bigdump wieder auf dem server einzuspielen sind alle umlaute weg.
Liegt das vielleicht an bigdump oder was mache ich falsch?
Wäre sehr über hilfen von euch erfreut.
Ich habe die sicherung mit phpmyadmin erstellt und dort sind alle umlaute vorhanden egal welche datenbank ich nehme. Versuche ich diese aber mit bigdump wieder auf dem server einzuspielen sind alle umlaute weg.
Liegt das vielleicht an bigdump oder was mache ich falsch?
Wäre sehr über hilfen von euch erfreut.