Поиск драйвера ODBC 13.0 для SQL Server на виртуальной машине Ubuntu Azure - PullRequest
1 голос
/ 27 марта 2019

У меня есть сценарий Python, который требует ODBC Driver 13.1 для SQL Server для подключения и записи на SQL Server.Я пытаюсь настроить скрипт на виртуальной машине Linux с Ubuntu 16.04 в Azure.У меня проблемы с поиском местоположения драйвера для использования в моем сценарии.

Я следовал инструкциям здесь при установке 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, когда я установил ODBC от Microsoft, это была часть вывода

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, он не дал результатов

Чтобы скрипт работал, мне нужно найти, где находится драйвер на сервере, чтобы я мог передать этот путь к скрипту.

1 Ответ

2 голосов
/ 27 марта 2019

Сначала убедитесь, что вы установили unixodbc-dev через apt-get на виртуальной машине Azure Ubuntu. Тогда для sqlalchemy требуется модуль pymssql или pyodbc, вы можете обратиться к официальному документу 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()

Подробнее о sqlalchemy с pyodbc или pymssql см. Документ SQLAlchemy для Microsoft SQL Server .

...