Назад | Перейти на главную страницу

Подключение к MS SQL Server из Ubuntu Server

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

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

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

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

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

Вы настроили источник данных в своем /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")