Ich versuche, mit freetds und unixodbc eine Verbindung zur MS SQL-Datenbank herzustellen . Ich habe verschiedene Anleitungen gelesen, wie es geht, aber niemand funktioniert gut für mich. Wenn ich versuche, mit dem isql- Tool eine Verbindung zur Datenbank herzustellen , wird die folgende Fehlermeldung angezeigt :
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Hat jemand die Verbindung zur MS SQL-Datenbank mit freetds und unixodbc unter Ubuntu 12.04 bereits erfolgreich hergestellt ? Ich würde mich sehr über Hilfe freuen.
Unten ist die Prozedur, die ich zum Konfigurieren von freetds und unixodbc verwendet habe . Danke im Vorraus für deine Hilfe!
Verfahren
Zuerst habe ich die folgenden Pakete mit installiert:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
und konfigurierte freetds wie folgt:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
Mit dem tsql- Tool kann ich durch Ausführen eine Verbindung zur Datenbank herstellen
tsql -S TS -U username -P password
Da ich eine odbc- Verbindung benötige, habe ich die Datei odbcinst.ini folgendermaßen konfiguriert :
--- /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
und odbc.ini wie folgt:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
Der Versuch, mit einem solchen Konfigurationsprogramm eine Verbindung zur Datenbank herzustellen , führt zu folgendem Fehler:
$ 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
Antworten:
Vielen Dank, Ihr Beitrag war sehr nützlich für mich. Ich konnte es zum Laufen bringen, indem ich die folgenden Zeilen aus meiner Datei odbcinst.ini entfernte
So, jetzt sieht meine odbcinst.ini-Datei so aus:
und meine odbc.ini-Datei sieht jetzt so aus:
Nachdem ich alles vereinfacht hatte, funktionierte es großartig. Ich kann es immer noch nicht mit RODBC zum Laufen bringen, aber es hat mit isql funktioniert.
Ich weiß nicht, ob das helfen wird, aber Ihr Beitrag hat mir geholfen. Vielen Dank.
quelle
/etc/odbcinst.ini
Dies ist ein minimales, aber vollständiges Beispiel für das Herstellen einer Verbindung zur Azure SQL-Datenbank mit
isql
Ubuntu 14.04.1 LTS. Das Beispiel stammt aus " Herstellen einer Verbindung mit einer Azure SQL-Datenbank unter Ubuntu" (Haftungsausschluss: Es ist mein persönliches Wiki).Installieren Sie die erforderlichen Pakete
FreeTDS konfigurieren
Datei
/etc/freetds/freetds.conf
Testverbindung
An dieser Stelle sollte das Verbinden mit
tsql
funktionieren:Beachten Sie, dass
@<HOST>
erforderlich ist. Ansonsten endet die Verbindung mit einem Fehler:Konfigurieren Sie den ODBC-Treiber
Datei
/etc/odbcinst.ini
Konfigurieren Sie ODBC-Datenquellen
Datei
/etc/odbc.ini
<SERVERNAME>
ist das gleiche wie infreetds.conf
.Verbinde dich mit isql
Beachten Sie, dass
@<HOST>
erforderlich ist. Ansonsten endet die Verbindung mit einem Fehler:quelle
@<HOST>
scheint nicht mehr erforderlich zu sein.In meinem Fall ist das Problem auf einfache Einrückungen in meiner Konfigurationsdatei zurückzuführen. Also habe
/etc/odbc.ini
ich alle Einrückungen und Voila entfernt!(
odbcinst.ini
Benimmt sich wie ein normales Kind und scheint keine Wutanfälle zu verursachen.)quelle
Ubuntu vor 12.04 hatte einen anderen Pfad in der Datei /etc/odbcinst.ini.
Der alte Fahrerweg war:
Ich habe es geändert in:
Hier ist die vollständige Konfiguration:
Funktioniert jetzt wie ein Zauber! Vielen Dank!
quelle