我正在尝试从 Ubuntu 上的 QGIS 连接到 SQL Server (MSSQL) 数据库。
根据以下链接,我创建了一个 odbc.ini 文件和驱动程序 -
https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql-server-ver15 和 https: //learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu18
[TEST]
Driver = ODBC Driver 17 for SQL Server
# Server = [protocol:]server[,port]
Server = tcp:xxx,1433
在配置 Windows ODBC 后,我可以从 Windows 机器上的 QGIS 连接到它,所以我很确定这不是服务器/数据库上的权限问题,而是 Ubuntu 20.4 机器上的驱动程序/连接字符串有问题。
我还尝试了https://gis.stackexchange.com/a/216422/2891中的解决方案。
更新
我现在尝试了以下解决方案来使用 docker 安装 QGIS?https://gis.stackexchange.com/a/333581/2891
并查看了有关在 Ubuntu 20.4 中创建 ODBC 链接的许多建议,例如https://help.interfaceware.com/kb/904和http://guywyant.info/log/206/connecting-to-ms-sql-server-from -ubuntu/
我在哪里使用 tsql/telnet 得到响应,但是
isql -v MSSQL devuser 'devpass'
给我
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
我能够从我正在添加 ODBC 连接以使用 Azure Data Studio 和 Beekeeper Studio 的机器连接到数据库,没有任何问题。只是 ODBC 连接和需要此功能的软件(如 QGIS)不起作用。
有人在他们的机器上运行这个吗?很高兴用积分奖励完整的答案...
更新 2 因此,在运行以下命令后,我得到了基本连接,但仍然无法连接到 QGIS。可以为这最后一块拼图做些什么?
~# sudo curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add
~# sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list
~# sudo apt-get update
~# sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
~# isql -v -k "DRIVER={ODBC Driver 18 for SQL Server};SERVER=tcp:111.111.111.11,1433;UID=Test;PWD=*****;Authentication=SqlPassword;TrustServerCertificate=Yes"
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from [Test].[dbo].[Optic_Fibre]