Подключение к 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")