MySQL Datenbank

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
wie kann ich eine Datenbank die durch eine CMS Installation entstanden ist und die collation latin_swedish_ci (MAMP war glaube ich so eingestellt) hat in das gängiste collation format umwandeln? Achso, was empfiehlt sich da? Irgendwas mit utf-8?

P.S: Ich habe von MySQL nicht sehr viel Ahnung wie man bestimmt merkt...

Thanks,
Max
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
Datenbank dumpen (File-encoding: ISO 8859-1)
Datei in einem Texteditor öffnen (Textmate, Eclipse, ...)
"DEFAULT CHARSET" bei den Tabellenstruktur Definitionen von "latin1" auf "utf-8" setzen (find/replace)
Datei speichern (Charset beim speichern auf UTF-8 stellen)
neue Datenbank als UTF-8 anlegen
neues SQL-File importieren

btw: die Kollation hat nichts mit dem Charset zu tun:
[CITE]
A collation is a set of rules for comparing characters in a character set. Let's make the distinction clear with an example of an imaginary character set.[...] (siehe: http://dev.mysql.com/doc/refman/5.1/en/charset-general.html)
[/CITE]

noch eine Anmerkung: MySQL unterstützt erst ab Version 4.1.x UTF8

lg.c7
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi, thanks für die ausführlche Erklärung. Ich habe aber noch Fragen dazu:

1.) Die Datenbank dumpen ist klar, aber wenn ich die dumpe wem/was soll ich dann die ISO 8859-1 geben (und wie)?
2.) Wie oft steht das "DEFAULT CHARSET" in der SQL query? Nur am Anfang 1x?
3.) Wie lege ich die Datenbank als utf-8 an? Ich verwende phpMyAdmin.
4.) Was bedeutet bei phpMyAdmin: MySQL connection collation?

EDIT: und wenn ich die utf-8 anlege welche da? Ich habe da tausende... utf-8 bin?

Thanks,
Max
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Ich habe das gerade mal versucht so wie ich mir das denke:

1.) Erstmal bei mir in MAMP das MySQL charset auf utf-8 und die MySQL connection collation auf utf-8 bin gestellt.
2.) Neue Datenbank mit Create New Database und in dem Drop-Down für Collation habe ich utf-8 bin ausgewählt.
3.) Dann habe ich die alte Datenbank (auch in MAMP drinn) exportiert und anschließend in die neue importiert.

Ergebnis: Ich sehe jetzt zwar in der Übersicht wo alle Datenbanken drinn stehen, dass die Datenbank utf-8 ist aber wenn ich mir die einzelnen Tabellen, etc. anschaue steht in der Spalte Collation immernoch: latine1_swedish_ci.
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
Ergebnis: Ich sehe jetzt zwar in der Übersicht wo alle Datenbanken drinn stehen, dass die Datenbank utf-8 ist aber wenn ich mir die einzelnen Tabellen, etc. anschaue steht in der Spalte Collation immernoch: latine1_swedish_ci.

Die Collation hat nichts mit dem charset zu tun. siehe link im vorigen Post
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
hab es jetzt hinbekommen. Ist es normal das wenn ich das mache was creative7even beschrieben hat (hat alles so weit geklappt wie er meint) und ich alle latin1 durch utf-8 bei mir in der SQL Query replaced habe, dass ich dann bei Importieren auf einmal bei allen Tables utf8_general_ci stehen habe?

Auf was soll ich denn dann bei phpMyAdmin auf der home die MySql Connection Collation stellen?

Thanks
 

mschoening

Gelbe Schleswiger Reinette
Registriert
21.02.07
Beiträge
1.764
Hi,
wie kann ich denn mein gesamtes Paket auf utf-8 umstellen?
Ich habe wenn ich bei phpMyAdmin auf Variables gehe nur bei session die utf-8 Werte. Bei global value steht immer noch dieses latin1_swedish_ci