加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

答疑 | 如何将图层导入MySQL数据库并用QGIS打开

发布时间:2022-12-17 15:03:58 所属栏目:MsSql教程 来源:未知
导读: 今天要回答一个问题:如何把shape文件导入到MySQL,并用QGIS打开显示到地图窗口中。
01
工具软件
QGIS:3.16.6
MySQL:8.0.25.0
GDAL:3.3.0
02
准备MySQL
MySQL安装包下载地址:
选择全部

今天要回答一个问题:如何把shape文件导入到MySQL,并用QGIS打开显示到地图窗口中。

01

工具软件

QGIS:3.16.6

MySQL:8.0.25.0

GDAL:3.3.0

02

准备MySQL

MySQL安装包下载地址:

选择全部安装,按照提示完成即可。

从开始菜单找到MySQL Workbench 8.0,打开:

mssql数据库导入_麦库导入印象笔记_mssql导入存储过程

建立用于导入数据的一个用户,比如“newuser”,参数设置如下:

Authentication Type:standard;

Limit to Hosts Matching:% ;

设置和确认密码;

点击【Apply】应用以建立用户。

mssql数据库导入_mssql导入存储过程_麦库导入印象笔记

新建用于存储数据的数据库。工具栏点击

按钮,设置name为:“qgistest”,点击【Apply】按钮,创建数据库。

麦库导入印象笔记_mssql导入存储过程_mssql数据库导入

03

准备GDAL

GDAL 3.3.0下载地址:。

将下载到的zip压缩包解压,进入”…\ release-1928-x64-gdal-3-3-0-mapserver-7-6-3\”目录,双击“SDKShell.bat”运行GDAL命令行,在提示符后输入如下命令检查GDAL版本以查看是否运行正常:

ogr2ogr –version

如果正常输出GDAL的版本,无报错,说明GDAL安装完成。

04

导入shape数据到MySQL

将需要导入到MySQL的shape文件存储在一个无中文字符和空格的路径中,比如本文使用的路径:“D:\data\world.shp”,在GDAL命令行中运行如下命令:

ogr2ogr MySQL:qgistest,host=localhost,user=newuser,password=123456 D:\data\world.shp -nln world -update -overwrite

命令行各部分说明如下:

ogr2ogr:GDAL数据转换命令;

MySQL:qgistest:连接MySQL下的qgistest 数据库;

Host:数据库主机,如果MySQL安装在本机,用localhost即可,如果在网络上,则需要输入主机的IP地址;

User:登陆数据库的用户名;

Password:登陆数据库密码;

D:\data\world.shp:要导入的Shape文件绝对路径,根据自己的文件路径修改,不要含空格或者中文字符;

-nln world:新建图层名称为world,图层名称可根据需要自己拟定;

-update:以update模式打开数据源;

-overwrite:删除已有同名图层,重新创建。

如果在运行上述命令时,出现“ERROR 1: MySQL connect failed for: test,host=localhost,user=newuser,password=XXXXXXXXXXXXX denied for user 'newuser'@'%' to database 'test'”错误,如下图:

麦库导入印象笔记_mssql数据库导入_mssql导入存储过程

打开MySQL Workbench 8.0->Users and Privileges,选“newuser”,在右边切换到“Scheme privileges”,点击“Add Entry”按钮,添加Scheme权限,然后点击下方的“Select ALL”按钮,点“Apply”给用户赋予全部权限:

mssql导入存储过程_mssql数据库导入_麦库导入印象笔记

05

QGIS打开数据

打开QGIS,在工具栏点击

数据源管理器按钮,切换到【矢量】->【数据库】->【连接】->【新建】,设置连接参数如下:

类型:MySQL;

名称:任意字符;

主机:localhost;

数据库:qgistest;

认证->基本->用户名/密码:newuser/123456,并勾选【存储】复选框;

具体如下图:

mssql数据库导入_麦库导入印象笔记_mssql导入存储过程

点击【OK】,在点击下方的【添加】按钮,关闭数据源管理器返回QGIS主窗口。此时,图层面板已经出现“qgistest world”图层,但是地图窗口仍然不显示图形。右键点击“qgistest world”图层->【属性】->【源】->【查询构建器】,在查询构建对话框中输入如下表达式:

select * from world;

mssql导入存储过程_mssql数据库导入_麦库导入印象笔记

点击两次【OK】按钮后,应该就可以看到地图窗口显示出世界行政区划图了。

mssql数据库导入_麦库导入印象笔记_mssql导入存储过程

06

写在最后

由于受到资金、精力各方面限制,QGIS团队目前对MySQL数据库的开发几乎处于停滞状态。使用本文的方法mssql数据库导入,可以实现数据的导入、显示,但不能直接对图层进行编辑和修改操作。所以,在需要用QGIS编辑数据的情况下,建议采用其他数据库来存储。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!