Próbuję połączyć się z bazą danych MS SQL przy użyciu freetds i unixodbc . Przeczytałem różne przewodniki, jak to zrobić, ale nikt nie działa dla mnie dobrze. Kiedy próbuję połączyć się z bazą danych za pomocą narzędzia isql , pojawia się następujący błąd:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Czy ktoś już pomyślnie ustanowił połączenie z bazą danych MS SQL przy użyciu freetds i unixodbc na Ubuntu 12.04? Byłbym bardzo wdzięczny za pomoc.
Poniżej znajduje się procedura, której użyłem do skonfigurowania freetds i unixodbc . Z góry dziękuję za pomoc!
Procedura
Najpierw zainstalowałem następujące pakiety z:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
i skonfigurowałem freetds w następujący sposób:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Za pomocą narzędzia tsql mogę pomyślnie połączyć się z bazą danych, wykonując
tsql -S TS -U username -P password
Ponieważ potrzebuję połączenia odbc , skonfigurowałem plik odbcinst.ini w następujący sposób:
--- /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
i odbc.ini w następujący sposób:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Próba połączenia z bazą danych za pomocą narzędzia isql z taką konfiguracją powoduje następujący błąd:
$ 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
Odpowiedzi:
Dzięki, twój post był dla mnie bardzo przydatny. Udało mi się go uruchomić, eliminując następujące wiersze z mojego pliku odbcinst.ini
więc teraz mój plik odbcinst.ini wygląda następująco:
i mój plik odbc.ini wygląda teraz tak:
Kiedyś wszystko uprościłem, działało świetnie. Nadal nie mogę zmusić go do pracy z RODBC, ale działał z isql.
Nie wiem, czy to pomoże, ale twój post pomógł mi. Dzięki.
źródło
/etc/odbcinst.ini
Jest to minimalny, ale kompletny przykład, jak połączyć się z bazą danych SQL Azure za pomocą
isql
Ubuntu 14.04.1 LTS. Przykład pochodzi z How To Connect Azure SQL Database From Ubuntu (nota prawna: to moja osobista wiki).Zainstaluj niezbędne pakiety
Skonfiguruj FreeTDS
Plik
/etc/freetds/freetds.conf
Testuj połączenie
W tym momencie łączenie się z
tsql
powinno działać:Uwaga, która
@<HOST>
jest wymagana. W przeciwnym razie połączenie kończy się błędem:Skonfiguruj sterownik ODBC
Plik
/etc/odbcinst.ini
Skonfiguruj źródła danych ODBC
Plik
/etc/odbc.ini
<SERVERNAME>
jest taki sam jak wfreetds.conf
.Połącz się z isql
Uwaga, która
@<HOST>
jest wymagana. W przeciwnym razie połączenie kończy się błędem:źródło
@<HOST>
nie wydaje się być konieczne.W moim przypadku problem powstał z powodu prostych wcięć w moim pliku konfiguracyjnym. Więc
/etc/odbc.ini
, mam usunięte wszystkie wcięcia i voila!(
odbcinst.ini
zachowuje się jak normalne dziecko i nie wydaje się wywoływać napadów złości).źródło
Ubuntu przed 12.04 miało inną ścieżkę odbc w pliku /etc/odbcinst.ini.
Stara droga kierowca był:
Zmieniłem go na adres:
Oto pełna konfiguracja:
Działa teraz jak urok! Dzięki!
źródło