Standardmäßig verwendet MySQL den Zeichensatz
latin1
(cp1252 West European) und die
Sortierung latin1_swedish_ci
, die gemäß den
in Schweden und Finnland gültigen Regeln sortiert. Diese
Standardeinstellungen sind für die Vereinigten Staaten und die
meisten Länder Westeuropas angemessen.
Alle MySQL-Binärdistributionen werden mit der Option
--with-extra-charsets=complex
kompiliert.
Hierdurch wird allen Standardprogrammen ein Code hinzugefügt,
der es ihnen gestattet, latin1
und alle
Multibyte-Zeichensätze in der Binärdatei zu verarbeiten.
Andere Zeichensätze werden bei Bedarf aus einer
Zeichensatzdefinitionsdatei geladen.
Der Zeichensatz bestimmt, welche Zeichen in Bezeichnern
zulässig sind. Die Sortierung hingegen definiert die Art und
Weise, wie Strings von den Klauseln ORDER BY
und GROUP BY
der
SELECT
-Anweisung sortiert werden.
Sie können den Standardzeichensatz und die Standardsortierung
auf dem Server mit den Optionen
--character-set-server
bzw.
--collation-server
beim Serverstart ändern.
Die Sortierung muss für den gewählten Standardzeichensatz
zulässig sein. (Mit der Anweisung SHOW
COLLATION
können Sie die für den jeweiligen
Zeichensatz zulässige Sortierung ermitteln.) Siehe auch
Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
Welche Zeichensätze verfügbar sind, hängt von den Optionen
--with-charset=
und
charset_name
--with-extra-charsets=
des Befehls
configure sowie von den in
list-of-charsets
| complex | all | none
gelisteten Zeichensatz-Konfigurationsdateien ab. Siehe auch
Abschnitt 2.8.2, „Typische configure-Optionen“.
SHAREDIR
/charsets/Index
Wenn Sie den Zeichensatz während der Ausführung von MySQL
ändern, kann sich dies auch auf die Sortierreihenfolge
auswirken. Das bedeutet, dass Sie myisamchk -r -q
--set-collation=collation_name
für alle Tabellen ausführen müssen, da andernfalls Ihre
Indizes nicht korrekt sortiert sind.
Wenn ein Client eine Verbindung mit einem MySQL-Server herstellt, gibt der Server dem Client seinen Standardzeichensatz an. Der Client schaltet dann für diese Verbindung auf den betreffenden Zeichensatz um.
Sie sollten mysql_real_escape_string()
verwenden, wenn Sie Strings für eine SQL-Abfrage kennzeichnen.
mysql_real_escape_string()
ist identisch mit
der alten Funktion mysql_escape_string()
, nur
nimmt es den MYSQL
-Verbindungs-Handle als
ersten Parameter entgegen, sodass der korrekte Zeichensatz bei
der Kennzeichnung von Zeichen berücksichtigt werden kann.
Wird der Client mit anderen als den Pfaden kompiliert, unter denen der Server installiert ist, und hat der Benutzer, der MySQL konfiguriert hat, nicht alle Zeichensätze in die MySQL-Binärdatei eingefügt, dann müssen Sie dem Client angeben, wo er die zusätzlichen Zeichensätze finden kann, die er braucht, wenn der Server mit einem anderen Zeichensatz ausgeführt wird als der Client.
Dies können Sie durch Angabe der Option
--character-sets-dir
tun, die den Pfad zu dem
Verzeichnis angibt, in dem die dynamischen MySQL-Zeichensätze
gespeichert sind. Sie können beispielsweise in einer
Optionsdatei folgende Angaben machen:
[client] character-sets-dir=/usr/local/mysql/share/mysql/charsets
Die Verwendung eines bestimmten Zeichensatzes durch den Client erzwingen Sie wie folgt:
[client]
default-character-set=charset_name
Allerdings ist dies normalerweise nicht erforderlich.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.