Próbowałem zmienić zestaw znaków dla naszego MySQL przez my.cnf i nie udało się. Dodałem ustawienia zestawu znaków wymienione poniżej:
# 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
Kiedy je włączyłem, MySQL nie uruchomił się. Jak mogę się upewnić, że wszystko domyślnie ma wartość utf8 - zawsze?
Aktualizacja
Nadal jest kilka miejsc mających problemy z byciem UTF8
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
Niestety wciąż nie wymyśliłem rozwiązania ... jakieś pomysły?
Obecnie używam tej konfiguracji z powodzeniem:
[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set = utf8
Ale PHPMyAdmin wciąż pokazuje 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
collation-server = utf8_general_ci
domysqld
sekcji mysql nie uruchamia się ponowniedefault-character-set = utf8
wiersza w[mysqld]
sekcji. Dodanie tej samej linii powoduje, że mysqld trwa wiecznie do ponownego uruchomienia. Jednak obsługa Unicode działa świetnie nawet bez tej linii.Odpowiedź Bena jest w porządku, ale zmiana ustawień absolutnie NIE zmieni istniejących zestawów znaków ani zestawień. Zrób to za pomocą odpowiedniej instrukcji ALTER TABLE.
Pamiętaj, że jeśli go nie określisz, tabele są tworzone w domyślnym zestawie znaków bazy danych. Jest to ustawienie dla bazy danych, które można zmienić za pomocą ALTER DATABASE. Nie jest to również ustawione w my.cnf.
źródło