mysqldump 无法从您发送到已添加的 GEOMETRY 字段的数据中获取几何对象 --hex-blob

Posted

技术标签:

【中文标题】mysqldump 无法从您发送到已添加的 GEOMETRY 字段的数据中获取几何对象 --hex-blob【英文标题】:mysqldump Cannot get geometry object from data you send to the GEOMETRY field already added --hex-blob 【发布时间】:2020-03-05 12:53:12 【问题描述】:

我正在尝试执行 mysql 转储,这是我正在使用的命令:

mysqldump --hex-blob -u user -p database > dump.sql

有人告诉我这应该解决二进制 point 字段,我在使用 mysql database < dump.sql 导入时仍然会出现此错误

无法从您发送到 GEOMETRY 字段的数据中获取几何对象

目前不知道该怎么办

我正在从版本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;

【问题讨论】:

这可能有用(虽然不是特定于 mysqldump):dba.stackexchange.com/questions/170787/… 还有***.com/questions/17480559/… 哦,这看起来很有希望:***.com/questions/44739009/… 【参考方案1】:

显然 5.7 比 GEOMETRY 类型字段的 5.6 更严格。

首先要尝试的最简单的方法是确保将任何空几何字段正确设置为 NULL,您可以这样做:

UPDATE myTable 
SET myGeo = NULL 
WHERE ST_IsEmpty(myGeo) IS NULL; 

否则,您可以查看这些问题,进一步深入研究此类问题:

https://dba.stackexchange.com/questions/170787/cannot-get-geometry-object-from-data-you-send-to-the-geometry-field

Cannot Restore Geometry Backup MySQL 5.7 Error

Back up a table with a GEOMETRY column using mysqldump?

【讨论】:

以上是关于mysqldump 无法从您发送到已添加的 GEOMETRY 字段的数据中获取几何对象 --hex-blob的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL CSV 导入 - 无法从您发送到 GEOMETRY 字段的数据中获取几何对象

发送到已释放实例问题的消息

发送到已释放实例 Core Data 的消息

如何将 AWS SES 电子邮件发送到已验证的同一域

fobjc-arc 标志导致发送到已释放实例崩溃的消息

无法让 mysqldump 工作