Понякога може да получите грешка „Неправилна стойност на низа“, докато се опитвате да вмъкнете данни в MySQL таблица или да импортирате външни данни в MySQL база данни. В тази статия ще разгледаме как да коригираме неправилна стойност на низ в MySQL.
Как да коригирам неправилна стойност на низ в MySQL
Това е често срещана грешка, когато се опитвате да вмъкнете стойност в MySQL таблица, която няма UTF8 кодиране или набор от знаци.
1. Проверете Набор от символи по подразбиране
Влезте в MySQL и изпълнете следната команда, за да проверите името на набора от символи по подразбиране на вашата база данни. Заменете database_name с името на вашата база данни.
mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";
Ако вашата база данни няма UTF8 кодиране, тогава трябва да я промените на UTF8. Преди това трябва да направим резервно копие на нашата база данни.
2. Архивиране на MySQL база данни
Излезте от MySQL и изпълнете следната команда, за да направите резервно копие на вашата MySQL база данни. Заменете user_name , парола и име_на_база_данни с вашето потребителско име, парола и имена на база данни съответно.
$ sudo mysql -u user_name -p pass_word database_name > backup.sql
3. Промяна на набора от таблици
Изпълнете следната команда, за да промените набора от знаци на всички таблици във вашата база данни на UTF8. Заменете database_name с името на вашата база данни
$ 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 ви позволява да променяте набора от символи само на една таблица в даден момент. Може да е досадно да изпълнявате отделни команди за промяна на набора от символи на всяка таблица. Горната команда изброява всички таблици в база данни и автоматично преобразува техния набор от знаци в UTF8.
4. Промяна на набора от знаци в базата данни
Влезте в MySQL и изпълнете следната команда, за да промените набора от знаци на базата данни на UTF8. Заменете базата_име с име на базата данни.
mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
Сега, ако вмъкнете данни в MySQL база данни, тя не трябва да дава грешки. Ubiq улеснява визуализирането на данни и наблюдението им в табла за управление в реално време. Опитайте Ubiq безплатно.