首页 > 解决方案 > mysqldump 无法从您发送到已添加的 GEOMETRY 字段的数据中获取几何对象 --hex-blob

问题描述

我正在尝试做一个 mysql 转储,这是我正在使用的命令:

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

有人告诉我这应该解决二进制point字段在使用导入时我仍然如何得到这个错误mysql database < dump.sql

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

不知道此时该做什么

我正在从版本导出5.6.455.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;

标签: mysqlblob

解决方案


显然 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

无法恢复几何备份 MySQL 5.7 错误

使用 mysqldump 备份带有 GEOMETRY 列的表?


推荐阅读