Někdy se při pokusu o vložení dat do tabulky MySQL nebo import externích dat do databáze MySQL může zobrazit chyba „Nesprávná hodnota řetězce“. V tomto článku se podíváme na to, jak opravit nesprávnou hodnotu řetězce v MySQL.
Jak opravit nesprávnou hodnotu řetězce v MySQL
Toto je běžná chyba, když se pokoušíte vložit hodnotu do tabulky MySQL, která nemá kódování UTF8 nebo znakovou sadu.
1. Zaškrtněte Výchozí znaková sada
Přihlaste se do MySQL a spusťte následující příkaz ke kontrole výchozího názvu znakové sady vaší databáze. Nahraďte název_databáze názvem své databáze.
mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";
Pokud vaše databáze nemá kódování UTF8, musíte jej změnit na UTF8. Před tím musíme udělat zálohu naší databáze.
2. Zálohujte databázi MySQL
Odhlaste se z MySQL a spusťte následující příkaz pro vytvoření zálohy databáze MySQL. Nahraďte user_name , heslo a název_databáze s vaším uživatelským jménem, heslem a názvy databáze.
$ sudo mysql -u user_name -p pass_word database_name > backup.sql
3. Změnit znakovou sadu tabulek
Spuštěním následujícího příkazu změňte znakovou sadu všech tabulek v databázi na UTF8. Nahraďte název_databáze názvem své databáze
$ 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
MySQL umožňuje měnit znakovou sadu pouze jedné tabulky najednou. Může být únavné spouštět samostatné příkazy pro změnu znakové sady každé tabulky. Výše uvedený příkaz zobrazí seznam všech tabulek v databázi a převede jejich znakovou sadu na UTF8 jednu po druhé, automaticky.
4. Změnit znakovou sadu databáze
Přihlaste se do MySQL a spusťte následující příkaz pro změnu znakové sady databáze na UTF8. Nahraďte název_databáze názvem databáze.
mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
Nyní, pokud chcete vložit data do databáze MySQL, nemělo by to způsobit chyby. Ubiq usnadňuje vizualizaci dat a jejich sledování na řídicích panelech v reálném čase. Vyzkoušejte Ubiq zdarma.