Configurazione ODBC in Linux
Mini-guida per la connessione da sistemi linux a database esterni tramite unix ODBC e FreeTDS.
Il primo passo è installare i pacchetti necessari per iniziare la configurazione poi testare le funzionalità.
# sudo apt-get install unixodbc unixodbc-dev freetds-dev sqsh tdsodbc
Una volta completata l’installazione andremo a modificare il file di configurazione freetds.conf nel forder /etc/freetds/
# vi /etc/freetds/freetds.conf
Aggiungeremo le seguenti righe:
[SQLEXPRESS] #nome percorso di connessione host = ip.add.ress #port = 1433 instance = nomeinstanza tds version = 7.0
Nel caso in cui volessimo collegarci ad un server SQL mono instanza basterà indicare la porta alla quale ci collegheremo port = 1433, altrimenti questa non va indicata e deve essere definita la variabile instace = nomeinstanza
Salvato il file freetds.conf andremo ad eseguire un test di connessione diretta al server SQl tramite sqsh utilizzando il nome dato in configurazione
# sqsh -S SQLEXPRESS -U username -P password
oppure tramite IP
# sqsh -S ip.add.ress -U username -P password
Cerco il file configurazione odbc
# odbcinst -j
Appurato che la connessione tra FreeTDS ed il nostro SQL server funzioni vado a configurare ODBC indicando i driver da utilizzare nel file odbcinst.ini
# vi /etc/odbcinst.ini
inserendo le righe:
[FreeTDS] Description = TDS driver (Sybase/MS SQL) Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = 5 CPReuse = 5 FileUsage = 1
L’ultimo passo è la creazione di DataSource che faranno da ponte tra i nostri applicativi e FreeTDS per comunicare con SQL Server
# vi /etc/odbc.ini
[datasourcename] Driver = FreeTDS Description = ODBC connection via FreeTDS Trace = No Server = SQLEXPRESS #indico il nome percorso di connessione impostato in freetds.conf Database = databasename
Test connessione DataSource
# isql -v datasourcename username password
Un esempio per l’utilizzo può essere PHP, dove andremo a collegarci trmite le funzioni odbc_connect e odbc_exec. Se non è installato php5-odbc procedo con apt per prelevare i pacchetti.
# sudo apt-get install php5-odbc
Creo il file test_odbc.php nella nostra directory di accesso web, ad esempio /var/www/html/
<?php $connection = odbc_connect('datasourcename', 'username', 'password'); if (!$connection) die("Connection failed!"); else echo "It Works!"; $query = odbc_exec($connection, 'SELECT column FROM table') or die (odbc_errormsg()); //........?>