Dieser Artikel beschreibt, wie Sie den Zeichensatz einer MySQL-Datenbank in die UTF-8-Codierung (auch bekannt als Unicode) konvertieren. Der UTF-8-Zeichensatz unterstützt viele Alphabete und Zeichen für eine Vielzahl von Sprachen.
Obwohl MySQL den UTF-8-Zeichensatz unterstützt, wird er oft nicht als Standardzeichensatz während der Datenbank- und Tabellenerstellung verwendet. Daher verwenden viele Datenbanken den lateinischen Zeichensatz, was je nach Anwendung einschränkend sein kann.
Bestimmung des aktuellen Zeichenkodierungssatzes
So ermitteln Sie, welchen Zeichensatz eine MySQL-Datenbank oder -Tabelle derzeit verwendet:
- Melden Sie sich bei Ihrem A2 Hosting SSH-Konto an.
- Geben Sie in der Befehlszeile den folgenden Befehl ein und ersetzen Sie Benutzername durch Ihren Benutzernamen:
mysql -u username -p
- Geben Sie bei der Eingabeaufforderung Passwort eingeben Ihr Passwort ein. Wenn Sie das richtige Passwort eingeben, erscheint die mysql>-Eingabeaufforderung.
-
Um den aktuellen Zeichensatz für eine bestimmte Datenbank anzuzeigen, geben Sie den folgenden Befehl an der mysql>-Eingabeaufforderung ein. Ersetzen Sie dbname durch den Datenbanknamen:
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";
-
Um den aktuellen Zeichensatz für eine bestimmte Tabelle in einer Datenbank anzuzeigen, geben Sie den folgenden Befehl an der Eingabeaufforderung mysql> ein. Ersetzen Sie dbname durch den Datenbanknamen und tablename durch den Namen der Tabelle:
SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "dbname" AND T.table_name = "tablename";
- Zum Verlassen von mysql Geben Sie am mysql>-Prompt \q ein.
Konvertieren des Zeichenkodierungssatzes in UTF-8
Stellen Sie sicher, dass Sie die Datenbank sichern, bevor Sie mit diesem Verfahren beginnen! Sie können eine MySQL-Datenbank mit cPanel, phpMyAdmin oder mysqldump sichern Programm.So konvertieren Sie den Zeichensatz in UTF-8:
- Melden Sie sich bei Ihrem A2 Hosting SSH-Konto an.
- Erstellen Sie eine Textdatei namens .my.cnf . Dazu können Sie einen Texteditor wie Vim oder Nano verwenden. Dieses Verfahren zeigt, wie Nano verwendet wird. Geben Sie in der Befehlszeile den folgenden Befehl ein:
nano .my.cnf
-
Fügen Sie der Datei die folgenden Zeilen hinzu und ersetzen Sie den Benutzernamen durch Ihren Benutzernamen und das Kennwort durch Ihr Kennwort (stellen Sie sicher, dass das Kennwort in Anführungszeichen eingeschlossen ist):
[client] user=username password="password"
- Wenn die Änderungen abgeschlossen sind, drücken Sie Strg+X, geben Sie y ein, um die Datei zu speichern, und drücken Sie dann die Eingabetaste.
-
Um die Zeichensatzcodierung für alle Tabellen in der angegebenen Datenbank in UTF-8 zu ändern, geben Sie den folgenden Befehl in der Befehlszeile ein. Ersetzen Sie dbname durch den Datenbanknamen:
mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=dbname
-
Geben Sie nach Abschluss des Befehls den folgenden Befehl ein, um mysql zu starten Programm:
mysql
-
Um die Zeichensatzcodierung für die Datenbank selbst in UTF-8 zu ändern, geben Sie den folgenden Befehl an der mysql>-Eingabeaufforderung ein. Ersetzen Sie dbname durch den Datenbanknamen:
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
- Zum Verlassen von mysql Geben Sie am mysql>-Prompt \q ein.
-
Um die Datei .my.cnf zu löschen geben Sie den folgenden Befehl in der Befehlszeile ein:
rm .my.cnf
- Um zu überprüfen, ob die Zeichensatzcodierung jetzt auf UTF-8 eingestellt ist, befolgen Sie die Schritte im obigen Verfahren zum Bestimmen des aktuellen Zeichencodierungssatzes.
Weitere Informationen
Weitere Informationen zu UTF-8 und Unicode finden Sie unter http://en.wikipedia.org/wiki/UTF-8.