Fix para collation e character encoding do MySQL após migração do site

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #12333
    Luis FatorBinario
    Luis FatorBinario
    Administrador

    Após migrar um site para novas versões de sistema como o Debian 8 talvez o seu site ou projeto apresente caracteres com acentuação errada. Isso acontece por causa do encode e do collation no banco de dados.

    O WordPress e outros CMS tratam este problema de forma transparente ao usuário e talvez você nunca necessite deste fix mas recentemente tive que alterar um servidor para que as postagens de um projeto em PHP puro + MySQL pudessem ser exibidas com a acentuação correta sem precisar alterar nada no banco de dados.

    Os passos são os seguintes:

    – Crie o espaço de site no ISPConfig e adicione o usuário e o banco de dados ao site

    – Importe a base de dados pelo phpMyAdmin

    Após isso configure o seu site para ler a partir do novo BD e se os caracteres de acentuação estiverem errados (isso normalmente acontece quando usa-se o Latin1) então proceda da seguinte maneira:

    – Acesse o console SSH como usuário root

    – Edite o arquivo /etc/mysql/my.cnf

    – Dentro do arquivo adicione as seguintes linhas (adicione somente as linhas em negrito):

    Linha 20:
    [client]
    default-character-set=utf8
    
    Linha 37 (aproximadamente):
    [mysqld]
    #
    # * Basic Settings
    #
    init-connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    Linha 128 (aproximadamente):
    [mysql]
    #no-auto-rehash	# faster start of mysql but no tab completition
    default-character-set=utf8
    
    

    Salve o arquivo e reinicie o MySQL:

    > /etc/init.d/mysql restart

    Recarregue o site e verifique se a acentuação normalizou.

     

Visualizando 1 post (de 1 do total)

Você deve fazer login para responder a este tópico.