首页 / 浏览问题 / 桌面GIS / 问题详情
服务器数据库无法导入数据
42EXP 2022年03月22日
call ****.GetSequenceNextID('SmDatasetID', @a);-MySQL server has gone away
Failed Exec strSQL : SELECT COUNT(*) FROM ****.SmImgRegister WHERE UPPER(SmDatasetName) = UPPER('cq_gis_test')-MySQL server has gone away

使用idesktop10将数据集从本地复制到服务器(linux)数据库mysql5.7的时候一直报错:

从一个本地开发数据库、导出的geojson导入服务器数据库都报错

1个回答

您好,根据报错信息可能是因为max_allowed_packet配置的默认值设置太小,文件的大小大于该值导致导入失败。

您可以检查一下max_allowed_packet的值是否小于导入文件的大小,查看命令参考:show global variables like 'max_allowed_packet';如果是您可以将值相应调大一点再尝试导入,查看命令参考(150m):set global max_allowed_packet=157286400;

如果不是该原因导致您试试数据库型数据源是否能正常新建数据集。
3,143EXP 2022年03月22日
我也怀疑过,但我show global variables like 'max_allowed_packet';值有16777216

新建数据集也不好用。我之前试过本地连接服务器mysql,也是操作会有问题,但那次是部分操作有问题,mysql5.6,idesktop8、9,这次是都不行
新建数据集也会失败的话,您可以尝试在mysql先新建一个数据库,然后在桌面新建同名数据库型数据源再尝试新建数据集能否成功。
超图桌面工具对mysql数据库的字符集有要求吗?

现象:本地连接远程服务器mysq/navicat从本地数据库导supermap表(有数据的)到数据库服务器,报错:mysql service has gone away/lost connect

桌面工具连接本地, 本地使用utf8mb4的数据库,数据集可以导进去,再用navicat导这个库的表到服务器,成功。

但问题是,我用桌面工具连接本地windows的mysql数据库,无论字符集是utf8还是mb4都没问题。将数据集从本地的utf8库复制到mb4也没问题。

一旦远程了服务器的数据库就不行?只有用本地建的mb4数据库才能做到导表到服务器数据库?
桌面对mysql的字符集没有什么要求的,只是导入数据时如果数据本身字符集和导入之后字符集不一致的话可能会出现中文乱码情况,不会出现导入失败的情况。对于您描述的使用场景我不是很明白:

1.本地连接远程服务器mysq/navicat从本地数据库导supermap表(有数据的)到数据库服务器,报错:mysql service has gone away/lost connect。这里的supermap表是怎么来的呢,如果是在idesktop导入数据集得来,那和下面那个成功的操作有什么区别吗?

2.您的最终目的是想将本地mysql数据库里面的数据集保存到服务器的mysql上是吗?您的操作是直接在数据库之间进行导入导出吗?您有尝试过在桌面新建本地mysql数据源和远程服务器的mysql数据源,在桌面进行数据集的导入导出吗?
1.我的数据集(点、面)是自己在文件型数据源中自己编辑的。“这里的supermap表是怎么来的呢”:我使用桌面工具连接自己机器的mysql数据库(版本和服务器版本一样,但服务器是Linux服务器),将文件型数据源中的数据集复制到了本地数据库。“那和下面那个成功的操作有什么区别吗?”:我无论是从本地的一个数据库复制数据集到另一个数据库,还是从文件型工作空间和数据库进行互相的数据集复制,都没问题。但远程服务器的数据库就都不好用。

2.”您有尝试过在桌面新建本地mysql数据源和远程服务器的mysql数据源,在桌面进行数据集的导入导出吗“

试过一样报错,哪怕是本地那个成功导表,字符集一样的数据库,通过桌面工具复制数据集给服务器的数据库也是失败。
您桌面具体版本是什么呢(在文件——关于可以查看),我这边测试看看能否复现该问题。(如果可以远程查看下具体情况的话,您也可以私信我远程看下)
版本: 10.2.1.1229.42881 x64(SuperMap iObjects .NET: 10.2.1.92245)
您好,我拿同一版本的idesktop和5.7.37版本的mysql(docker)测试,远程连接mysql数据库,新建数据库型数据源,在桌面导入导出数据以及新建数据集均正常。您这边方便的话可以提供一下电话或者其他联系方式,再详细了解一下情况(联系方式可以私信我)。
远程的数据库是Linux系统的数据库吗?
你的数据库字符集是utf8-mb4吗
是Linux的mysql,数据库字符集没有设置,桌面数据库字符集没有utf8-mb4的选项,设置为utf-8
...