Я пытаюсь подключиться к базе данных MS SQL, используя freetds и unixodbc . Я читал различные руководства, как это сделать, но никто не работает нормально для меня. Когда я пытаюсь подключиться к базе данных с помощью инструмента isql , я получаю следующую ошибку:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Кто-нибудь уже успешно установил соединение с базой данных MS SQL, используя freetds и unixodbc в Ubuntu 12.04? Я был бы очень признателен за помощь.
Ниже приведена процедура, которую я использовал для настройки freetds и unixodbc . Заранее спасибо за помощь!
Процедура
Сначала я установил следующие пакеты:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
и настроил freetds следующим образом:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Используя инструмент tsql , я могу успешно подключиться к базе данных, выполнив
tsql -S TS -U username -P password
Поскольку мне нужно соединение odbc, я настроил odbcinst.ini следующим образом:
--- /etc/odbcinst.ini ---
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1
CPTimeout =
CPResuse =
client charset = utf-8
и odbc.ini следующим образом:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Попытка подключиться к базе данных с помощью инструмента isql с такой конфигурацией приводит к следующей ошибке:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
tsql
:sudo apt-get install freetds-bin
Ответы:
Спасибо, ваш пост был очень полезен для меня. Я смог заставить его работать, удалив следующие строки из моего файла odbcinst.ini
так что теперь мой файл odbcinst.ini выглядит так:
и мой файл odbc.ini теперь выглядит так:
Однажды я все упростил, все заработало отлично. Я до сих пор не могу заставить его работать с RODBC, но он работал с isql.
Я не знаю, поможет ли это, но ваш пост помог мне. Спасибо.
источник
/etc/odbcinst.ini
Это минимальный, но полный пример подключения к базе данных SQL Azure с помощью
isql
от Ubuntu 14.04.1 LTS. Пример взят из статьи Как подключить базу данных SQL Azure из Ubuntu (отказ от ответственности: это моя личная вики).Установите необходимые пакеты
Настроить FreeTDS
файл
/etc/freetds/freetds.conf
Тестовое соединение
На этом этапе соединение с
tsql
должно работать:Обратите внимание, что
@<HOST>
требуется. В противном случае соединение завершается с ошибкой:Настроить драйвер ODBC
файл
/etc/odbcinst.ini
Настройте источники данных ODBC
файл
/etc/odbc.ini
<SERVERNAME>
такой же, как вfreetds.conf
.Связаться с isql
Обратите внимание, что
@<HOST>
требуется. В противном случае соединение завершается с ошибкой:источник
@<HOST>
больше не появляется , чтобы быть необходимо.В моем случае проблема возникла из-за простых отступов в моем конфигурационном файле. Итак
/etc/odbc.ini
, я удалил все отступы и вуаля!(
odbcinst.ini
ведет себя как нормальный ребенок и, кажется, не бросает истерики.)источник
Ubuntu до 12.04 имел другой путь odbc в файле /etc/odbcinst.ini.
Старый путь к драйверу был:
Я изменил это на:
Вот полная конфигурация:
Работает как шарм сейчас! Благодарность!
источник