MariaDB Ошибка неверного значения строки с кодировкой utf8mb4 - PullRequest
0 голосов
/ 21 июня 2019

Я изменил базу данных и набор символов таблицы как utf8mb4 и сопоставление utf8bm4_turkish_ci на MariaDB для поддержки смайликов.Хотя я могу легко вставлять и выбирать операции, подключаясь к серверу через терминал, но я получаю ошибку «Неверное строковое значение», в то время как я хочу выполнить операцию вставки через клиент (веб-приложение или MySQL Workbench).Кроме того, когда я хочу отобразить данные с помощью выбора, он поврежден.Тем временем я заметил другую ситуацию;даже если база данных и таблицы не поддерживают utf8mb4 (я использовал для тестирования только utf8), я могу вставить emoji через терминал и даже просмотреть его с помощью select.

Insert and Select operation through terminal

Insert and Select operation through MySQL Workbench

Определения в файле my.cnf следующие:

[mysqld]
datadir        = /var/lib/mysql
socket         = /var/lib/mysql/mysql.sock
user           = mysql
symbolic-links = 0
old_passwords  = 0

innodb_file_format        = Barracuda
default-storage-engine    = InnoDB
innodb_file_per_table     = 1
innodb_open_files         = 500
innodb_thread_concurrency = 24
lower_case_table_names    = 1
character-set-server      = utf8mb4
collation-server          = utf8mb4_turkish_ci
init-connect              = 'SET NAMES utf8mb4 COLLATE utf8mb4_turkish_ci'

skip-character-set-client-handshake
innodb_large_prefix

[client]
default-character-set = utf8mb4

[mysql]
skip-secure-auth
default-character-set = utf8mb4

1 Ответ

0 голосов
/ 23 июня 2019

Кроме того, столбец в таблице должен быть CHARACTER SET utf8mb4.Пожалуйста, предоставьте SHOW CREATE TABLE, чтобы мы могли проверить это.

Кроме того, сделайте SHOW VARIABLES LIKE 'char%'; с неисправного клиента;там может быть не так.

...