configurare ODBC

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
mattanasio
Prode Principiante
Messaggi: 11
Iscrizione: lunedì 18 marzo 2024, 13:38
Desktop: .
Distribuzione: 22.04.4 LTS
Sesso: Maschile

configurare ODBC

Messaggio da mattanasio »

Buongiorno,
dovrei configurare il file odbc.ini per poter permettere di connettermi al DB MSSQL.

il mio scenario è il seguente: ho una macchina Windows con MSSQL 2019, ho installato sulla mia macchina UBUNTU [Ubuntu 22.04.4 LTS] ed installato il driver Microsoft ODBC Driver 18.

Per far funzionare la connessione tra i due server, devo configurare il file odbc.ini

Questo è il contenuto del file odbcinst.ini

Codice: Seleziona tutto

~$ cat /etc/odbcinst.ini 
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.2.1
UsageCount=1


ho provato a configurare senza successo il file odbc.ini

Codice: Seleziona tutto

~$ cat /etc/odbc.ini     
[MSSQLServer]
Driver = msodbcsql18
Description = Microsoft ODBC Driver 18 for SQL Server
Trace = No
Server = NEWSQL2019
Port = 1433
Database = NEWSQL2019
Purtroppo in questo modo non funzionano le query lanciate sotto ubuntu. Dove e cosa sto sbagliando??



Grazie mille
Avatar utente
Rafbor
Prode Principiante
Messaggi: 145
Iscrizione: domenica 13 febbraio 2022, 18:22
Desktop: Xubuntu
Distribuzione: 22.04.3 LTS
Località: Francia

Re: configurare ODBC

Messaggio da Rafbor »

Salve, non so se hai letto la guida di Microsoft, dice che "Port" non è una parola chiave valida nel file odbc.ini, guarda l'esempio fornito.
mattanasio
Prode Principiante
Messaggi: 11
Iscrizione: lunedì 18 marzo 2024, 13:38
Desktop: .
Distribuzione: 22.04.4 LTS
Sesso: Maschile

Re: configurare ODBC

Messaggio da mattanasio »

Rafbor ha scritto:
lunedì 8 aprile 2024, 18:31
Salve, non so se hai letto la guida di Microsoft, dice che "Port" non è una parola chiave valida nel file odbc.ini, guarda l'esempio fornito.
ho seguito le tue indicazioni, ma continuo ad avere problemi.
Andiamo per punti

Questo non l'ho mai configurato
file odbcinst.ini

Codice: Seleziona tutto

 cat /etc/odbcinst.ini     
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.2.1
UsageCount=1
questo l'ho configurato seguendo la guida di MS

Codice: Seleziona tutto

# [DSN name]
[NEWSQL2019]
driver = ODBC Driver 18 for SQL ServerServer 
# Server = [protocol:]server[,port] 
server = tcp:192.168.1.170,1433
Encrypt = yes
Quando testo il mio script in php non funziona

Codice: Seleziona tutto

<?php  
/* Specify the server and connection string attributes. */  
$serverName = "tcp:192.168.1.170,1433";  /*"NEWSQL2019";*/
  
/* Get UID and PWD from application-specific files.  */  
$uid = "sa";
$pwd = "Password@1";
$connectionInfo = array( "UID" => $uid, "PWD" => $pwd, "Database" => "OS1_NES");  
                         
/*$serverName = "tcp:myserver.database.windows.net,1433";
$connectionOptions = array("Database"=>"AdventureWorks","Uid"=>"MyUser", "PWD"=>"MyPassword");*/

$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn == false)
echo "Errore su Sqlsrv_connect 1!!</br></br>"; 
print_r (sqlsrv_errors());
    die(FormatErrors(sqlsrv_errors()));

return $conn;
 
/* Connect using SQL Server Authentication. */  
$conn = odbc_connect("DataDirectMSSQL", $uid, $pwd);
//sqlsrv_connect( $serverName, $connectionInfo);  
if( $conn === false )  
{  
     echo "Unable to connect.</br>";  
     die( print_r( sqlsrv_errors(), true));  
}  else
{ echo "connessione al DB riuscita!";}

/* Query SQL Server for the login of the user accessing the  
database. */  
$tsql = "SELECT *   FROM [OS1_NES].[dbo].[OCS_Utenti]";  
$stmt = sqlsrv_query( $conn, $tsql);  
if( $stmt === false )  
{  
     echo "Error in executing query.</br>";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Retrieve and display the results of the query. */  
$row = sqlsrv_fetch_array($stmt);  
echo "User login: ".$row[0]."</br>";  
  
/* Free statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
questo è l'errore

Codice: Seleziona tutto

Array ( [0] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] => -1 [code] => -1 [2] => [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate] [message] => [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:0A000086:SSL routines::certificate verify failed:self-signed certificate] ) [1] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] => -1 [code] => -1 [2] => [Microsoft][ODBC Driver 18 for SQL Server]Client unable to establish connection. For solutions related to encryption errors, see https://go.microsoft.com/fwlink/?linkid=2226722 [message] => [Microsoft][ODBC Driver 18 for SQL Server]Client unable to establish connection. For solutions related to encryption errors, see https://go.microsoft.com/fwlink/?linkid=2226722 ) )
Avatar utente
GjMan78
Rampante Reduce
Rampante Reduce
Messaggi: 5879
Iscrizione: mercoledì 22 novembre 2006, 19:15
Desktop: KdePlasma
Distribuzione: EndeavourOS
Sesso: Maschile
Località: ~/Italia/Lazio/Viterbo/

Re: configurare ODBC

Messaggio da GjMan78 »

Seguendo il link riportato nell'errore trovo questo
If connection encryption is desired, TrustServerCertificate can also be set to yes to skip server certificate validation.
Hai provato?
MacBook Pro - Intel i5-3210 - 16 Gbyte Ram DDR3 - SSD 500 Gbyte x 2
»»» 𝗙𝗮𝗶 𝗶𝗹 𝗕𝗮𝗰𝗸𝘂𝗽! ¯\_(ツ)_/¯
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti