Ich habe versucht, den Zeichensatz für unser MySQL über my.cnf zu ändern, aber es ist fehlgeschlagen. Ich habe die unten aufgeführten Zeichensatzeinstellungen hinzugefügt:
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# ------------- MYSQL CHARSETS --------------
character_set_system = utf8
character_set_server = utf8
character_set_results = utf8
character_set_database = utf8
character_set_connection = utf8
character_set_client = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
Als ich diese aktiviert hatte, konnte MySQL nicht gestartet werden. Wie kann ich sicherstellen, dass standardmäßig utf8 verwendet wird - immer?
pdate
Es gibt immer noch einige Orte, die Probleme mit UTF8 haben
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Leider habe ich mir noch keine Lösung ausgedacht ... irgendwelche Ideen?
Derzeit verwende ich diese Konfiguration erfolgreich:
[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set = utf8
Aber PHPMyAdmin zeigt immer noch etwas Latin1
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Sie müssen Folgendes in Ihre my.cnf-Datei aufnehmen
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set = utf8
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Weitere Informationen finden Sie auf den folgenden Handbuchseiten
http://dev.mysql.com/doc/refman/5.6/en/charset-configuration.html
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_character_set_system
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_character_set_server
Als Antwort auf Marks Antwort benötigen Sie eine geeignete ALTER
-Abfrage, wenn Sie vorhandene Tabellen/Datenbanken in den richtigen Zeichensatz konvertieren müssen. Ähnliches wie das Folgende:
ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Alternativ gibt es ein großartiges PHP Skript hier , das es für Sie erledigt.
Bens Antwort ist in Ordnung, aber durch Ändern der Einstellungen werden vorhandene Tabellenzeichensätze oder -kollatierungen ABSOLUT NICHT geändert. Tun Sie dies mit einer entsprechenden ALTER TABLE-Anweisung.
Beachten Sie, dass Tabellen im Standardzeichensatz der Datenbank erstellt werden, wenn Sie sie nicht angeben. Dies ist eine datenbankbezogene Einstellung, die mit ALTER DATABASE angepasst werden kann. Dies ist auch nicht in my.cnf eingestellt.