Re: mysql-DB in utf8 verändern
Nachstehendes gilt fuerr MySQL 5, keine Ahnung, ob's auch bei der
4.0-er klappt, hab grad keine da zum Testen, aber vielleicht ist's bei
Dir ja einen Versuch wert. Die 4.1-er unterstuetzt def. UTF-8 (ist
dort z.B. unter Gentoo der Standard-Zeichensatz).
Sollte das nachstehende nicht funktionieren, koennte es durchaus sein,
dass MySQL 4.0 UTF-8 nicht unterstuetzt.
Ich weiss, dass MySQL 3.2.23 UTF8 def. nicht unterstuetzt hat, wir
mussten uns da was eigenes basteln, bei der 4.0 bin ich mir etwas
unsicher.
Na denn:
Zunaechst einmal:
mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.26, for suse-linux-gnu (i686) using readline 5.1
Connection id: 11
Current database: rex
Current user: root@localhost
SSL: Not in use
Current pager: less
Using outfile: ''
Using delimiter: ;
Server version: 5.0.26
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 132 days 9 hours 7 min 47 sec
Threads: 1 Questions: 17 Slow queries: 0 Opens: 11 Flush tables: 1
Open tables: 6 Queries per second avg: 0.000
--------------
mysql>
Zur Aenderung des Charactersets:
Du kannst in MySQL 5 mehrere Chactersets verwenden. Du hast die Moeglichkeit,
- ein Characterset golbal fuer die ganze Datenbank zu setzen
- lediglich eine Tabelle auf UTF-8 laufen zu lassen, obwohl die
DB-Instanz z.B. auf latin1 laeuft.
1. Setzen eines Charactersets fuer die gesamte DB-Instanz:
--------------------------------------------------------------------------------------
In der Datei /etc/mysql/my.cnd nach dem Eintrag
[mysqld]
suchen
Hier muss dann eine Zeile eingefuegt werden, die da lautet
default-character-set=utf8
Achtung: utf8 hat hier keinen Bindestrich, den man normalerweise
erwartet ("UTF-8")...
Wenn Du dann zusaetzlich noch die Zeile
skip-character-set-client-handshake
anschliessend einfuegst, geht MySQL auch davon aus, dass jeder Client
seine Requests UTF-8-kodiert rueberbeamt. Ansonsten versucht MySQL,
das verwendete Characterset fuer die Client-Kommunikation zu erraten
bzw. liesst dieses aus den URL-Parametern.
2. Setzen eines eigenen Charactersets fuer eine dedizierte Tabelle
------------------------------------------------------------------------------------------------
Funktioniert mit SQL-Bordmitteln, nachstehend ein entspr. Create Table
- Statement:
CREATE TABLE Scrooge_McDuck (
something VARCHAR(250) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Ich meine, es waere in den Manualen
(http://dev.mysql.com/doc/refman/5.1/de/index.html) auch ganz gut
erklaert.
HTH
Gregor
PS.: Verzeiht mir die Hardcopy von der Suse-Box, aber unter Etch ist's
zumindestens identisch--
what's puzzlin' you, is the nature of my game
gpgp-fp: 79A84FA526807026795E4209D3B3FE028B3170B2
gpgp-key available @ http://pgpkeys.pca.dfn.de:11371
Reply to: