【发布时间】:2018-07-09 15:05:01
【问题描述】:
在导入带有 JSON 列的表的 SQL 文件时,我遇到了这个问题。
数据库有
编码:utf8mb4
整理:utf8mb4_unicode_ci
这是带有 json 列的表:
CREATE TABLE `tracking_data` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`route` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`data` json NOT NULL,
`user_id` int(10) unsigned NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
我已阅读此question 关于堆栈溢出的答案,这表明该表必须位于utf8mb4。我的已经,但我仍然面临这个问题。
仍然抛出这个错误:
第 XXX 行:无法从具有 CHARACTER SET 的字符串创建 JSON 值 '二进制'。
当我运行show session variables like 'char%';:
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
我该如何解决这个问题? 谢谢!
【问题讨论】: