• Quem nunca teve dor de cabeça com CharSet no MySQL?

Bom estes problemas são facilmente resolvidos, mas o erro fundamental é a má arquitetura e planejamento do sistema a ser construído!
É muito comum você procurar no Google ou no Yahoo e encontrar tópicos em fóruns com pessoas desesperadas, pois migram de servidor ou simplesmente começam a aparecer caracteres incorretos em seus sistemas. O MySQL por ser um banco de dados que trabalha com diferentes sistemas operacionais é suscetível a configurações diversas, e uma delas convenientemente é os parâmetros de char collection.
Lembrando que estas modificações somente são recomendadas se seu sistema estiver cobertos por elas.

  • Verificando suas configurações

1
SHOW VARIABLES LIKE 'character%';

Execute este comando:

Provavelmente você verá

1
2
3
4
5
6
7
8
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/

Podemos verificar que existem vários passos entre a chamada da aplicação á nosso banco até a devolução da informação requerida.
Em nosso exemplo acima o erro mais comum é a utilização de char collection diferentes entre os processos, ou seja se utilizamos latin1 para o banco e utf8 para nossa conexão ocorrera problemas com nossos caracteres.
para corrigir este problema é recomendado que você utilize a mesma coleção de caracteres, menos a de character_set_filesystem que é fortemente recomendado e padrão o binary.

Bom amigos, minhas recomendações:

  1. Faça beckup do banco de dados antes de qualquer alteração.
  2. Nunca modifique as configurações em um banco em produção, é sempre recomendado ter um ambiente de teste.

Espero ter ajudado. Até a proxima.