Instalando ODBC a través de HomeBrew

3

Instalé freetds y unixodbc a través de Homebrew, más o menos siguiendo las instrucciones que se encuentran en este servidor sql y odbc en Mac enlace.

Me aparté de esas direcciones cuando llegó a la ubicación del controlador y la configuración, en lugar de utilizar

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

en el archivo /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini ya que aquí es donde encontré mis bibliotecas dinámicas ODBC.

(También hice esos cambios porque las Mac no usan archivos * .so, esa es una nomenclatura * nix, lo que admito me puso nervioso al seguir esas instrucciones, pero parecían coincidir con los consejos de otros sitios, como < a href="http://hiltmon.com/blog/2013/09/18/setup-odbc-for-r-on-os-x/"> éste para instalar RODBC en Mac y estos < a href="http://www.savelono.com/linux/how-to-configure-linux-odbc-connections-for-ms-sql.html"> excelentes instrucciones para * nix .)

He intentado ejecutarlo, he realizado cambios, he realizado un seguimiento a través de dtruss , específicamente haciendo este comando:

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

No importa cómo ajuste las cosas, sin romperlas activamente, recibo el siguiente error:

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

El archivo junk_to_sift_through.txt generado con errores es bastante grande, pero debajo está el final de la misma, que debería debe tener el error oculto en algún lugar. Pero parece que no puedo resolverlo.

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

¿Alguna idea por ahí?

¡Gracias!

    
pregunta Mike Williamson 11.08.2015 - 03:01

1 respuesta

1

unixODBC

  

SQLAllocHandle del controlador en SQL_HANDLE_ENV fallido

Causa

  

Las nuevas funciones de seguridad introducidas en DB2 ® Universal Database ™ (DB2 UDB) Versión 8.2 impiden que los usuarios utilicen la base de datos a menos que pertenezcan a los grupos de ® de Windows DB2ADMNS o DB2USERS .

Solución

  

Agregue el ID de usuario (el que se usa para ejecutar la aplicación) al grupo DB2ADMNS o DB2USERS. Consulte el enlace en "Información relacionada" (a continuación) para obtener instrucciones sobre cómo lograr esto.

Relacionados:

Controlador ODBC para SQL Server

Reinstale los paquetes utilizando la versión reciente:

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

Nota: si llegas a varios conflictos de pulsaciones, ejecuta: brew untap microsoft/mssql-preview && brew untap microsoft/msodbcsql .

Luego, prueba tu configuración de SQL con: sqlcmd -S localhost o isql -v -k <connection-string> .

Relacionado: Servidor SQL: No se puede abrir la libreta 'ODBC Driver 13 para SQL Server' .

Consulte: Instalación del controlador Microsoft ODBC para SQL Server en Linux y macOS .

    
respondido por el kenorb 24.10.2017 - 16:30

Lea otras preguntas en las etiquetas