2013-08-14 11 views
17

Sto tentando di eseguire la connessione a un server MSSQL da un server web di Ubuntu 12.04 con FreeTDS e unixODBC.FreeTDS funzionante, ma ODBC non può connettersi

Utilizzando tsql posso collegarmi al server con

~$ tsql -S dbs3 -U <username> -P <password> 

nessun problema.

Quando provo a connettersi con isql però, ricevo il seguente messaggio di errore:

~$ isql -v database3 <username> <password> 
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source 
[01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. 
[ISQL]ERROR: Could not SQLConnect 

I miei file di configurazione sono le seguenti:

odbc.ini

[database3] 
Driver=FreeTDS 
TDS_Version=8.0 
Servername=dbs3 
Port=1433 
Database=benchmark_res 

odbcinst. ini

[FreeTDS] 
Description=FreeTDS v0.91 
Driver=/usr/local/lib/libtdsodbc.so 
Setup=/usr/local/lib/libtdsS.so 
Trace=Yes 
TraceFile=/tmp/freetds.log 
ForceTrave=Yes 
UsageCount=1 

freetds.conf

# This file is installed by FreeTDS if no file by the same 
# name is found in the installation directory. 
# 
# For information about the layout of this file and its settings, 
# see the freetds.conf manpage "man freetds.conf". 

# Global settings are overridden by those in a database 
# server specific section 
[global] 
    # TDS protocol version 
; tds version = 4.2 

    # Whether to write a TDSDUMP file for diagnostic purposes 
    # (setting this to /tmp is insecure on a multi-user system) 
; dump file = /tmp/freetds.log 
; debug flags = 0xffff 

    # Command and connection timeouts 
; timeout = 10 
; connect timeout = 10 

    # If you get out-of-memory errors, it may mean that your client 
    # is trying to allocate a huge buffer for a TEXT field. 
    # Try setting 'text size' to a more reasonable limit 
    text size = 64512 

# A typical Sybase server 
[egServer50] 
    host = symachine.domain.com 
    port = 5000 
    tds version = 5.0 

# A typical Microsoft server 
[egServer70] 
    host = ntmachine.domain.com 
    port = 1433 
    tds version = 7.0 

[dbs3] 
    host = <server-ip> 
    port = 1433 
    tds version = 8.0 

Ho seguito la guida all'installazione 1. here e 2. here

Perché non è isql collegamento correttamente?
La mia ipotesi è che l'errore è super ovvio, ma io sono troppo stupido per vederlo: D

risposta

1

Se ODBC non trova l'origine dati significa che si sta fornendo quella sbagliata

Probabilmente si sta tentando per la connessione a dbs3 che fallirà se non lo avete in odbc.ini

si deve collegare al [database3] per ODBC

isql -v database3 <username> <password> 
+0

Questo è quello che sto facendo. Uso dbs3 con tsql: tsql -S dbs3 -U -P . Uso di isql il modo in cui menzioni restituisce questi errori – AndMim

+0

Ok hai aggiunto database3 al tuo file host – meda

+0

No, perché, a mio parere, dovrebbe essere risolto con l'IP inserito nel freetds.conf – AndMim

11

La questione era questa linea in ODBC.INI

[database3] must be [dbs3] in your case. 

Per coloro che stanno anche avendo questo problema, controllare anche il

ServerName = *Points to the name of the server configured in freetds.conf*