Installazione di ODBC tramite HomeBrew

3

Ho installato freetds e unixodbc tramite Homebrew, seguendo più o meno le istruzioni trovate in questo sql server e odbc su Mac collegamento.

Mi sono allontanato da quelle direzioni quando si trattava del percorso per il driver e l'installazione, utilizzando invece

Driver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
Setup = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib

nel file /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini poiché è qui che ho trovato le mie librerie dinamiche ODBC.

(Ho anche apportato queste modifiche perché i Mac non usano i file * .so, questa è una nomenclatura * nix, che ammetto mi ha reso nervoso nel seguire quelle indicazioni, ma sembravano corrispondere ai consigli di altri siti, come < a href="http://hiltmon.com/blog/2013/09/18/setup-odbc-for-r-on-os-x/"> questo per l'installazione di RODBC su Mac e questi < a href="http://www.savelono.com/linux/how-to-configure-linux-odbc-connections-for-ms-sql.html"> ottime istruzioni per * nix .)

Ho provato a eseguirlo, ho apportato delle modifiche, ho fatto una traccia tramite dtruss , in particolare facendo questo comando:

dtruss isql -v odbc-test <my_user_id> <associated_password> 2> junk_to_sift_through.txt

Non importa come aggiusto le cose - senza interromperle attivamente - continuo a ricevere il seguente errore:

[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
[ISQL]ERROR: Could not SQLConnect

Il file junk_to_sift_through.txt generato con errori è abbastanza grande, ma sotto c'è il lato finale di esso, che dovrebbe avere l'errore nascosto da qualche parte in esso. Ma non riesco a capirlo.

open_nocancel("/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini
Driver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
Setup = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
", 0x0, 0x1B6) = 3 0 fstat64(0x3, 0x7FFF53378CB8, 0x1B6) = 0 0 read_nocancel(0x3, "[ms-sql]\nDescription = TDS connection\nDriver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nUsageCount = 1\nFileUsage = 1\nTrace = Yes\n
dtruss isql -v odbc-test <my_user_id> <associated_password> 2> junk_to_sift_through.txt
", 0x1000) = 143 0 read_nocancel(0x3, "
[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
[ISQL]ERROR: Could not SQLConnect
", 0x1000) = 0 0 close_nocancel(0x3) = 0 0 open_nocancel("/Users/mike/.odbcinst.ini
open_nocancel("/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini%pre%", 0x0, 0x1B6)       = 3 0
fstat64(0x3, 0x7FFF53378CB8, 0x1B6)      = 0 0
read_nocancel(0x3, "[ms-sql]\nDescription = TDS connection\nDriver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nUsageCount = 1\nFileUsage = 1\nTrace = Yes\n%pre%", 0x1000)        = 143 0
read_nocancel(0x3, "%pre%", 0x1000)         = 0 0
close_nocancel(0x3)      = 0 0
open_nocancel("/Users/mike/.odbcinst.ini%pre%", 0x0, 0x1B6)         = 3 0
fstat64(0x3, 0x7FFF53378CB8, 0x1B6)      = 0 0
read_nocancel(0x3, "[ms-sql]\nDescription = TDS connection\nDriver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nUsageCount = 1\nFileUsage = 1\nTrace = Yes\n%pre%", 0x1000)        = 143 0
read_nocancel(0x3, "%pre%", 0x1000)         = 0 0
close_nocancel(0x3)      = 0 0
fstat64(0x1, 0x7FFF5337CD08, 0x1000)         = 0 0
write_nocancel(0x2, "[ISQL]ERROR: Could not SQLConnect\n%pre%", 0x22)       = 34 0
write_nocancel(0x1, "[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed\n%pre%", 0x53)  = 83 0
", 0x0, 0x1B6) = 3 0 fstat64(0x3, 0x7FFF53378CB8, 0x1B6) = 0 0 read_nocancel(0x3, "[ms-sql]\nDescription = TDS connection\nDriver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.2.dylib\nUsageCount = 1\nFileUsage = 1\nTrace = Yes\n%pre%", 0x1000) = 143 0 read_nocancel(0x3, "%pre%", 0x1000) = 0 0 close_nocancel(0x3) = 0 0 fstat64(0x1, 0x7FFF5337CD08, 0x1000) = 0 0 write_nocancel(0x2, "[ISQL]ERROR: Could not SQLConnect\n%pre%", 0x22) = 34 0 write_nocancel(0x1, "[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed\n%pre%", 0x53) = 83 0

Qualche idea là fuori?

Grazie!

    
posta Mike Williamson 11.08.2015 - 03:01
fonte

1 risposta

1

unixODBC

Driver's SQLAllocHandle on SQL_HANDLE_ENV failed

Causa

The new security features introduced in DB2® Universal Database™ (DB2 UDB) Version 8.2 prevent users from using the database unless they belong to the Windows® groups DB2ADMNS or DB2USERS.

Soluzione

Add the userid (the one used to execute the application) to either the DB2ADMNS or DB2USERS group. Please refer to the link under "Related Information" (below) for instructions on how to accomplish this.

Related:

Driver ODBC per SQL Server

Reinstalla i pacchetti utilizzando la versione recente:

brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-mssql-release
ACCEPT_EULA=y brew reinstall --no-sandbox msodbcsql mssql-tools

Nota. Se riscontri più conflitti di tocco, esegui: brew untap microsoft/mssql-preview && brew untap microsoft/msodbcsql .

Quindi verifica la configurazione SQL in base a: sqlcmd -S localhost o isql -v -k <connection-string> .

Correlati: SQL Server: impossibile aprire lib 'Driver ODBC 13 per SQL Server' .

Vedi: Installazione del driver Microsoft ODBC per SQL Server su Linux e macOS .

    
risposta data 24.10.2017 - 16:30
fonte

Leggi altre domande sui tag