[OGR2OGR,在Ubuntu 16.04上具有MS SQL

问题描述 投票:3回答:1

我需要从Ubuntu Server 16.04使用OGR2OGR访问Microsoft SQL Server。它正在Microsoft上运行,因此基本设置很好。

我的问题是,当我运行OGR2OGR命令时(使用sudo apt-get install gdal-bin安装GDAL之后:]

ogr2ogr -overwrite -f MSSQLSpatial "MSSQL:server=tcp:<DATABASE_SERVER>,<PORT>;database=<DATABASE_NAME>;uid=<USER>;Pwd=<PASSWORD>;" "<IMPORT PATH FILE>" -nln "<TABLE NAME>" -progress

我收到错误:

错误1:无法为MSSQL初始化与服务器的连接:“ DATABASE_SERVER”;[unixODBC] [驱动程序管理器]无法打开lib'SQL Server':找不到文件尝试从可用驱动程序列表的连接字符串中指定驱动程序:

我尝试根据this指令安装SQL Server的Microsoft ODBC驱动程序,但是在安装gdal时无法安装。错误是:

无法安装某些软件包。这可能意味着您有请求不可能的情况,或者您使用的是不稳定情况分发一些尚未创建的必需软件包或已移出“收入”。以下信息可能有助于解决这种情况:

以下软件包具有未满足的依赖性:msodbcsql:取决于:unixodbc-utf16(> = 2.3.1-1)但不会被安装E:无法纠正问题,您拿着破损的包裹。

一段时间后,我设法安装了Microsoft ODBC驱动程序,但这意味着删除GDAL。因此,我可以使用GDAL或Microsoft ODBC驱动程序。有没有办法解决这个问题?

感谢您的帮助!

UPDATE(2017.01.03):我找到了以下解决方案,并且我还评论了MSDN Blog上的相应文章(到目前为止,没有回复)here

如果尚未安装UnixODBC,请安装

sudo apt-get install unixodbc unixodbc-dev

从某处下载:msodbcsql-11.0.2270.0.tar.gz(最好使用msodbcsql-13.x.x.x.tar.gz,但我找不到它)和

tar xvfz msodbcsql-11.0.2270.0.tar.gz
cd msodbcsql-11.0.2270.0
ldd lib64/libmsodbcsql-11.0.so.2270.0

如果缺少依赖项,请安装它们,就我而言,可以这样完成:(除了apt-get install之外,所有其他操作都是通过创建链接来修复文件的命名:)

sudo apt-get install libssl1.0.0 libssl-dev
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

安装和清理:

sudo bash ./install.sh install --force --accept-license

rm -rf /tmp/msodbcubuntu

如果使用该工具的驱动程序未找到该驱动程序,例如ogr2ogr或pyodbc,请编辑/etc/odbcinst.ini并为[SQL Server]创建连接器

[SQL Server]
Description=Microsoft ODBC Driver 11 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0
Threading=1
UsageCount=2
sql-server gis ubuntu-16.04 gdal ogr2ogr
1个回答
0
投票
之后

从:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15起无耻地

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17

验证与

ogr2ogr --formats

然后应该列出:

MSSQLSpatial -vector- (rw+): Microsoft SQL Server Spatial Database
© www.soinside.com 2019 - 2024. All rights reserved.