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:
- Faça login na sua conta SSH do A2 Hosting.
- Na linha de comando, digite o seguinte comando, substituindo username pelo seu nome de usuário:
mysql -u username -p
- No prompt Digite sua senha, digite sua senha. Quando você digita a senha correta, o prompt mysql> aparece.
-
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";
-
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";
- 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:
- Faça login na sua conta SSH do A2 Hosting.
- 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
-
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"
- Quando as edições estiverem concluídas, pressione Ctrl+X, digite y para salvar o arquivo e pressione Enter.
-
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
-
Depois que o comando terminar, digite o seguinte comando para iniciar o mysql programa:
mysql
-
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;
- Para sair do mysql programa, digite \q no prompt do mysql>.
-
Para excluir o .my.cnf arquivo, digite o seguinte comando na linha de comando:
rm .my.cnf
- 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.