一尘不染

MySQL 5.7.12导入无法使用CHARACTER SET'binary'从字符串创建JSON值

mysql

我导出了带有JSON列的数据库。迁移到新服务器后,每次导入都会崩溃,并显示以下错误:

无法使用CHARACTER SET’binary’从字符串创建JSON值

在stackoverflow上,我找到了这篇文章,但对我不起作用: mysqlimport发出“ set @@
character_set_database =
binary”问题,阻止加载json值

该文件为2GB,无法打开该文件。

有人有导入我的数据库文件的想法吗?


阅读 552

收藏
2020-05-17

共1个答案

一尘不染

您可以对导出的SQL文本应用正则表达式,以将二进制字符串转换为可插入格式。这是我遇到此问题时的快速而肮脏的解决方法

(X'[^,\)]*')
CONVERT($1 using utf8mb4)

应用此正则表达式意味着

INSERT INTO json_table (json_column) VALUES (X'7B22666F6F223A2022626172227D');

现在将成为

INSERT INTO json_table (json_column) VALUES (CONVERT(X'7B22666F6F223A2022626172227D' using utf8mb4));
2020-05-17