Подключение к MS SQL Server с сервера Ubuntu

Используя Ubuntu 10.04 LTS, я пытаюсь подключиться к серверу MS SQL, который есть у нас на другом компьютере, из скрипта Python. Какие шаги мне нужно выполнить, чтобы сделать это? Сейчас я пытаюсь использовать модуль pyodbc, но всякий раз, когда я пытаюсь подключиться, я получаю следующую ошибку:

Имя источника данных не найдено, и драйвер по умолчанию не указан (0)(SQLDriverConnectW)

Поэтому я посмотрел на файл odbvcinst.ini, который был пустым, добавил запись, и теперь, когда я использую один из элементов, которые я там определил, я получаю следующую ошибку:

Ошибка драйвера SQLAllocHandle для SQL_HANDLE_HENV (0)(SQLDriverConnectW)

Я установил: unixodb unixodbc-dev freetds-dev freetds-bin. Я поставил это на SF, а не на SO, потому что думаю, что это проблема конфигурации сервера. Какой драйвер у меня должен быть и как мне ссылаться на него в каком файле и т. Д.? (Я довольно новичок в Ubuntu)

1 ответ

Решение

Вы настроили источник данных в своем /etc/freetds.conf файл?

Запись должна выглядеть примерно так:

# A typical Microsoft server
[egServer70]
        host = ntmachine.domain.com
        port = 1433
        tds version = 7.0

(Хотя я обычно использую tds version = 8.0, когда работаю с MS SQL Server, и он работает нормально)

Редактировать: (собираюсь разместить мои ответы здесь, чтобы я мог кодировать их)

Ваш /etc/odbcinst.ini должен выглядеть так:

[MSSQL]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so 
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =

(Убедитесь, что пути к драйверам верны. Иногда это /usr/lib/odbc/)

Тогда строка Python должна выглядеть так:

import pyodbc
connection = pyodbc.connect("DRIVER={MSSQL};SERVER=yourserver.yourdomain.com;UID=username;PWD=password;DATABASE=databasename")
Другие вопросы по тегам