我导出了带有JSON列的数据库。迁移到新服务器后,每次导入都会崩溃,并显示以下错误:
无法使用CHARACTER SET’binary’从字符串创建JSON值
在stackoverflow上,我找到了这篇文章,但对我不起作用: mysqlimport发出“ set @@ character_set_database = binary”问题,阻止加载json值
该文件为2GB,无法打开该文件。
有人有导入我的数据库文件的想法吗?
您可以对导出的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));