Às vezes, você pode obter o erro “Valor de string incorreto” ao tentar inserir dados na tabela MySQL ou importar dados externos para o banco de dados MySQL. Neste artigo, veremos como corrigir o valor incorreto da string no MySQL.
Como corrigir valor de string incorreto no MySQL
Este é um erro comum quando você tenta inserir um valor em uma tabela MySQL que não possui uma codificação UTF8 ou um conjunto de caracteres.
1. Verifique o conjunto de caracteres padrão
Faça login no MySQL e execute o seguinte comando para verificar o nome do conjunto de caracteres padrão do seu banco de dados. Substitua database_name pelo nome do banco de dados.
mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";
Se seu banco de dados não tiver codificação UTF8, você precisará alterá-lo para UTF8. Antes disso, precisamos fazer um backup do nosso banco de dados.
2. Backup do banco de dados MySQL
Saia do MySQL e execute o seguinte comando para fazer backup do seu banco de dados MySQL. Substitua user_name , senha e database_name com seu nome de usuário, senha e nomes de banco de dados, respectivamente.
$ sudo mysql -u user_name -p pass_word database_name > backup.sql
3. Alterar conjunto de caracteres de tabelas
Execute o comando a seguir para alterar o conjunto de caracteres de todas as tabelas em seu banco de dados para UTF8. Substitua database_name pelo nome do seu banco de dados
$ sudo mysql --database=database_name -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=database_name
O MySQL permite que você altere o conjunto de caracteres de apenas uma tabela por vez. Pode ser tedioso executar comandos separados para alterar o conjunto de caracteres de cada tabela. O comando acima lista todas as tabelas em um banco de dados e converte seu conjunto de caracteres para UTF8 um por um, automaticamente.
4. Alterar o conjunto de caracteres do banco de dados
Faça login no MySQL e execute o seguinte comando para alterar o conjunto de caracteres do banco de dados para UTF8. Substitua database_name pelo nome do banco de dados.
mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
Agora se você inserir dados no banco de dados MySQL, não deve dar erros. O Ubiq facilita a visualização de dados e o monitoramento em painéis em tempo real. Experimente o Ubiq gratuitamente.