J'essaie de me connecter à la base de données MS SQL en utilisant freetds et unixodbc . J'ai lu divers guides sur la façon de le faire, mais personne ne fonctionne bien pour moi. Lorsque j'essaie de me connecter à la base de données à l'aide de l' outil isql , j'obtiens l'erreur suivante:
$ isql -v TS username password
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Quelqu'un a-t-il déjà réussi à établir la connexion à la base de données MS SQL en utilisant freetds et unixodbc sur Ubuntu 12.04? J'apprécierais volontiers de l'aide.
Voici la procédure que j'ai utilisée pour configurer les freetds et unixodbc . Merci d'avance pour votre aide!
Procédure
Tout d'abord, j'ai installé les packages suivants avec:
sudo apt-get install unixodbc unixodbc-dev freetds-dev tdsodbc
et configuré les freetds comme suit:
--- /etc/freetds/freetds.conf ---
[TS]
host = SERVER
port = 1433
tds version = 7.0
client charset = UTF-8
En utilisant l' outil tsql , je peux me connecter avec succès à la base de données en exécutant
tsql -S TS -U username -P password
Comme je l' ai besoin d' une odbc connexion I configuré odbcinst.ini comme suit:
--- /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
et odbc.ini comme suit:
--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Servername = SERVER
Server = SERVER
Port = 1433
Database = DBNAME
Trace = No
La tentative de connexion à la base de données à l'aide de l' outil isql avec une telle configuration entraîne l'erreur suivante:
$ 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
Réponses:
Merci, votre message m'a été très utile. J'ai pu le faire fonctionner en supprimant les lignes suivantes de mon fichier odbcinst.ini
alors maintenant mon fichier odbcinst.ini ressemble à ceci:
et mon fichier odbc.ini ressemble à ceci maintenant:
Une fois que j'ai tout simplifié, cela a très bien fonctionné. Je n'arrive toujours pas à le faire fonctionner avec RODBC mais cela a fonctionné avec isql.
Je ne sais pas si cela vous aidera, mais votre message m'a aidé. Merci.
la source
/etc/odbcinst.ini
Il s'agit d'un exemple minimal mais complet de connexion à Azure SQL Database avec à
isql
partir d'Ubuntu 14.04.1 LTS. L'exemple est extrait de Comment connecter la base de données SQL Azure à partir d'Ubuntu (avertissement: c'est mon wiki personnel).Installer les packages nécessaires
Configurer FreeTDS
Fichier
/etc/freetds/freetds.conf
Tester la connexion
À ce stade, la connexion avec
tsql
devrait fonctionner:Notez que cela
@<HOST>
est obligatoire. Sinon, la connexion se termine avec une erreur:Configurer le pilote ODBC
Fichier
/etc/odbcinst.ini
Configurer les sources de données ODBC
Fichier
/etc/odbc.ini
<SERVERNAME>
est le même qu'enfreetds.conf
.Connectez-vous avec isql
Notez que cela
@<HOST>
est obligatoire. Sinon, la connexion se termine avec une erreur:la source
@<HOST>
ne semble plus être nécessaire.Dans mon cas, le problème est survenu à cause de simples retraits dans mon fichier de configuration. Donc en dedans
/etc/odbc.ini
, j'ai supprimé tous les tirets et le tour est joué!(
odbcinst.ini
Se comporte comme un enfant normal et ne semble pas faire de caprices.)la source
Ubuntu avant 12.04 avait un chemin odbc différent dans le fichier /etc/odbcinst.ini.
L'ancien chemin du pilote était:
Je l'ai changé en:
Voici la configuration complète:
Ça fonctionne parfaitement maintenant! Merci!
la source