Tentei alterar o conjunto de caracteres para o nosso MySQL via my.cnf e ele falhou. Adicionei as configurações de charset listadas abaixo:
# 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
Quando eu os habilitei, o MySQL falhou ao iniciar. Como posso garantir que tudo seja o padrão utf8 - sempre?
Atualizar
Ainda existem alguns lugares com problemas para ser 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
Infelizmente ainda não encontrei uma solução ... alguma idéia?
Atualmente, estou usando esta configuração com sucesso:
[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set = utf8
Mas o PHPMyAdmin ainda está mostrando algum 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
àmysqld
seção, o mysql falha ao reiniciardefault-character-set = utf8
linha de[mysqld]
seção. A adição desta linha resulta no mysqld demorando uma eternidade para reiniciar. O suporte a Unicode, no entanto, funciona muito bem, mesmo sem essa linha.A resposta de Ben está bem, mas alterar as configurações ABSOLUTAMENTE NÃO altera os conjuntos de caracteres ou agrupamentos de tabelas existentes. Faça isso com uma instrução ALTER TABLE apropriada.
Observe que, se você não especificar, as tabelas serão criadas no conjunto de caracteres padrão do banco de dados. Essa é uma configuração por banco de dados que pode ser ajustada com ALTER DATABASE. Isso também não está definido no my.cnf.
fonte