云游屋
扫描关注云游屋

云游屋

QGIS连接MySQL数据库,解决属性表乱码和数据不显示问题

云游屋2022-11-15大数据 1133

文章目录

1、QGIS连接MySQL数据库

2、属性表乱码问题

3、要素在地图中不显示

在这篇文章中,主要记录在QGIS中连接MySQL数据库的方法,加载MySQL中的空间数据,以及在连接之后属性表乱码和数据不显示问题的解决方法。


1、QGIS连接MySQL数据库

在QGIS中,默认的连接列表中可以看到PostGIS、MSSQL、Oracle、DB2等数据库连接,不包括MySQL,MySQL需要在数据资源管理器中添加连接。


图层 - 数据资源管理器


在数据资源管理器中,按照下图顺序,依次选择矢量 — 数据库 —MySQL — 新建,然后填入数据库名称、注记、数据库、端口、用户名、密码等。


名称:可以是任何你喜欢的名字

主机:MySQL主机或IP地址

数据库:要连接的数据库名称,必填,否则连接不到

用户/密码:MySQL的用户名密码


点击OK,添加。此时会自动展示可以添加的数据

选择想要在QGIS中打开的数据,确定,就可以在QGIS的图层列表中看到添加的数据。


2、属性表乱码问题

虽然图层列表中可以看到图层,但在地图上并没有显示相应的要素,首先打开属性表查看,发现属性表中出现乱码,考虑是编码方式问题


打开图层属性,选择源,将数据源编码改为UTF-8



再次打开属性表,显示正常


在这个过程中,我是逐个图层进行设置的,没找到批量修改或者修改默认编码方式的问题,希望后续能改进。


3、要素在地图中不显示

属性表正常显示后,在地图中要素依然无法显示。尝试将要素导出重新保存


导出后要素正常显示


对于要素显示这一点,我没搞明白为什么导出后可以正常显示,但问题确实解决了…看到有大佬通过建虚拟图层的方法显示数据(https://segmentfault.com/a/1190000038679195),我尝试了一下也是可以的,可能是因为MySQL数据库的支持问题,不太懂,暂时不纠结了。

————————————————

版权声明:本文为CSDN博主「制图小韩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/han_jinlin/article/details/123294806


发表评论