我正在尝试执行 mysql 转储,这是我正在使用的命令:
mysqldump --hex-blob -u user -p database > dump.sql
有人告诉我这应该解析二进制文件 point
字段如何在使用 mysql database < dump.sql
导入时仍然出现此错误
Cannot get geometry object from data you send to the GEOMETRY field
现在不知道该怎么做
我正在从版本 5.6.45
导出至5.7.27
但是,导入看起来不错,它包含所有记录,当我选择几何数据时,它看起来像二进制数据,我可以吗?
//找到 45K 条记录
select * from listingsaws where ST_IsEmpty(`location`) IS NULL;
//更新了0条记录
UPDATE listingsaws SET `location` = NULL WHERE ST_IsEmpty(`location`) IS NULL;
//找到 45K 条记录
select * from listingsaws where asText(`location`) IS NULL;
//更新了0条记录
UPDATE listingsaws SET `location` = NULL WHERE asText(`location`) IS NULL;
最佳答案
对于 GEOMETRY 类型字段,显然 5.7 比 5.6 更严格。
首先尝试的最简单的事情是确保所有空几何字段都正确设置为 NULL,您可以这样做:
UPDATE myTable
SET myGeo = NULL
WHERE ST_IsEmpty(myGeo) IS NULL;
否则,您可以查看这些问题,进一步深入研究此类问题:
关于mysqldump 无法从发送到已添加的 GEOMETRY 字段的数据中获取几何对象 --hex-blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58774193/