簡體   English   中英

在Ubuntu Azure VM上找到SQL Server的ODBC驅動程序13.0

[英]Locating ODBC Driver 13.0 for SQL Server on Ubuntu Azure VM

我有一個python腳本,需要ODBC驅動程序13.1才能將SQL Server連接並寫入SQL Server。 我正在嘗試在Azure上運行Ubuntu 16.04的Linux VM上設置腳本。 我無法找到要在腳本中使用的驅動程序的位置。

我已按照此處有關安裝ODBC的說明進行操作,它似乎已成功安裝。 但是,每當我在系統上查找它的安裝位置時,都找不到它。

在本地計算機上,我將信息傳遞給連接字符串,如下所示:

server = '{server name}'
username = '{username}'
password = '{password}'
driver = '/usr/local/lib/libmsodbcsql.13.dylib'

# use following string for database connection
con = sqlalchemy.create_engine('mssql+pyodbc://' + user + ':' + passw + '@' + host + ':' + str(port) + '/' + database + '?' + 'driver' + '=' + driver, echo=False

在Linux VM上,當我從Microsoft安裝ODBC時,這是輸出的一部分

Preparing to unpack .../msodbcsql_13.1.9.2-1_amd64.deb ...
Unpacking msodbcsql (13.1.9.2-1) ...

該文件路徑的其余部分在哪里? 當我使用find . .../msodbcsql_13.1.9.2-1_amd64.deb find . .../msodbcsql_13.1.9.2-1_amd64.deb它沒有返回任何結果

為了使腳本起作用,我需要找到驅動程序在服務器上的位置,以便可以將該路徑傳遞給腳本。

首先,請確保已通過apt-get在Azure Ubuntu VM上安裝了unixodbc-dev 然后pymssqlpyodbc模塊所要求sqlalchemy ,你可以參考官方文檔Python SQL Driver進行安裝。

接下來,我為您提供了SO線程Microsoft Azure數據倉庫和SqlAlchemy的答案 ,其中包括以下示例代碼。

import sqlalchemy

connection_string = "mssql+pyodbc://<user>@<server-host>:<password>@<server-host>.database.windows.net:1433/<database>?driver=ODBC+Driver+13+for+SQL+Server"
engine = sqlalchemy.engine.create_engine(connection_string)
engine.connect()

要么

import sqlalchemy
import urllib

params = urllib.quote_plus("Driver={ODBC Driver 13 for SQL Server};Server=<server-host>.database.windows.net,1433;Database=<database>;Uid=<user>@<server-host>;Pwd=<password>;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;")
engine = sqlalchemy.engine.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)
engine.connect()

如需詳細了解sqlalchemypyodbcpymssql ,請參閱該文件的SQLAlchemy 的Microsoft SQL Server

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM