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