Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como converter um banco de dados MySQL para codificação UTF-8


Este artigo descreve como converter o conjunto de caracteres de um banco de dados MySQL para a codificação UTF-8 (também conhecida como Unicode). O conjunto de codificação de caracteres UTF-8 suporta muitos alfabetos e caracteres para uma ampla variedade de idiomas.

Embora o MySQL suporte o conjunto de codificação de caracteres UTF-8, ele geralmente não é usado como o conjunto de caracteres padrão durante a criação do banco de dados e da tabela. Como resultado, muitos bancos de dados usam o conjunto de caracteres latinos, o que pode ser limitado dependendo do aplicativo.

Determinando o conjunto de codificação de caracteres atual


Para determinar qual conjunto de codificação de caracteres um banco de dados ou tabela MySQL está usando no momento:
  1. Faça login na sua conta SSH do A2 Hosting.
  2. Na linha de comando, digite o seguinte comando, substituindo username pelo seu nome de usuário:
    mysql -u username -p
  3. No prompt Digite sua senha, digite sua senha. Quando você digita a senha correta, o prompt mysql> aparece.

  4. Para exibir o conjunto de codificação de caracteres atual para um banco de dados específico, digite o seguinte comando no prompt mysql>. Substitua dbname pelo nome do banco de dados:

    SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";

  5. Para exibir o conjunto de codificação de caracteres atual para uma tabela específica em um banco de dados, digite o seguinte comando no prompt mysql>. Substitua dbname pelo nome do banco de dados e tablename pelo nome da tabela:

    SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "dbname" AND T.table_name = "tablename";
  6. Para sair do mysql programa, digite \q no prompt do mysql>.

Converter a codificação de caracteres definida para UTF-8

Certifique-se de fazer backup do banco de dados antes de iniciar este procedimento! Você pode fazer backup de um banco de dados MySQL usando cPanel, phpMyAdmin ou o mysqldump programa.
Para converter o conjunto de codificação de caracteres para UTF-8:
  1. Faça login na sua conta SSH do A2 Hosting.
  2. Crie um arquivo de texto chamado .my.cnf . Para fazer isso, você pode usar um editor de texto como o Vim ou o Nano. Este procedimento mostra como usar o Nano. Na linha de comando, digite o seguinte comando:
    nano .my.cnf

  3. Adicione as seguintes linhas ao arquivo, substituindo nome de usuário por seu nome de usuário e senha por sua senha (certifique-se de que a senha esteja entre aspas):

    [client]
    user=username
    password="password"
  4. Quando as edições estiverem concluídas, pressione Ctrl+X, digite y para salvar o arquivo e pressione Enter.

  5. Para alterar a codificação do conjunto de caracteres para UTF-8 para todas as tabelas no banco de dados especificado, digite o seguinte comando na linha de comando. Substitua dbname pelo nome do banco de dados:

    mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=dbname

  6. Depois que o comando terminar, digite o seguinte comando para iniciar o mysql programa:

    mysql

  7. Para alterar a codificação do conjunto de caracteres para UTF-8 para o próprio banco de dados, digite o seguinte comando no prompt mysql>. Substitua dbname pelo nome do banco de dados:

    ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
  8. Para sair do mysql programa, digite \q no prompt do mysql>.

  9. Para excluir o .my.cnf arquivo, digite o seguinte comando na linha de comando:

    rm .my.cnf
  10. Para verificar se a codificação do conjunto de caracteres agora está definida como UTF-8, siga as etapas no procedimento Determinar o conjunto de codificação de caracteres atual acima.

Mais informações


Para obter mais informações sobre UTF-8 e Unicode, visite http://en.wikipedia.org/wiki/UTF-8.