Я попытался изменить кодировку для нашего MySQL через my.cnf, и это не удалось. Я добавил настройки кодировки, указанные ниже:
# 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
Когда я включил их, MySQL не запустился. Как я могу убедиться, что все по умолчанию utf8 - всегда?
Обновить
Есть еще несколько мест, где есть проблемы с 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
К сожалению, я до сих пор не нашел солютон ... есть идеи?
В настоящее время я успешно использую эту конфигурацию:
[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set = utf8
Но PHPMyAdmin все еще показывает некоторые латыни
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
вmysqld
раздел mysql не удается перезапуститьdefault-character-set = utf8
строки в[mysqld]
разделе. Добавление этой самой строки приводит к тому, что mysqld перезапускается навсегда. Однако поддержка Unicode прекрасно работает даже без этой строки.Ответ Бена в порядке, но изменение настроек АБСОЛЮТНО НЕ изменит наборы символов или сопоставления существующих таблиц. Сделайте это с помощью соответствующего оператора ALTER TABLE.
Обратите внимание, что если вы не укажете это, таблицы будут созданы в наборе символов по умолчанию базы данных. Это настройка для каждой базы данных, которую можно настроить с помощью ALTER DATABASE. Это также не установлено в my.cnf.
источник