I installed freetds and unixodbc via Homebrew, more or less following the directions found in this sql server and odbc on Mac link.
I diverged from those directions when it came to the location for the driver and setup, instead using
Driver = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
Setup = /usr/local/Cellar/unixodbc/2.3.2_1/lib/libodbc.dylib
in the file /usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini
since this is where I found my ODBC dynamic libraries.
(I also made those changes because Macs do not use *.so files, that's a *nix nomenclature, which I admit made me nervous in following those directions, but they did seem to match advice at other sites, such as this one for installing RODBC on Mac and these great instructions for *nix.)
I have tried to run it, made changes, done a trace via dtruss, specifically doing this command:
dtruss isql -v odbc-test <my_user_id> <associated_password> 2> junk_to_sift_through.txt
No matter how I adjust things – without actively breaking them further – I keep getting the following error:
[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
[ISQL]ERROR: Could not SQLConnect
The junk_to_sift_through.txt
generated file with errors is fairly large, but below is the tail end of it, which should have the error hidden somewhere in it. But I cannot seem to figure it out.
open_nocancel("/usr/local/Cellar/unixodbc/2.3.2_1/etc/odbcinst.ini\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\0", 0x1000) = 143 0
read_nocancel(0x3, "\0", 0x1000) = 0 0
close_nocancel(0x3) = 0 0
open_nocancel("/Users/mike/.odbcinst.ini\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\0", 0x1000) = 143 0
read_nocancel(0x3, "\0", 0x1000) = 0 0
close_nocancel(0x3) = 0 0
fstat64(0x1, 0x7FFF5337CD08, 0x1000) = 0 0
write_nocancel(0x2, "[ISQL]ERROR: Could not SQLConnect\n\0", 0x22) = 34 0
write_nocancel(0x1, "[IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed\n\0", 0x53) = 83 0
Any ideas out there?
Thanks!
Best Answer
unixODBC
Cause
Solution
Related:
ODBC Driver for SQL Server
Reinstall the packages using the recent version:
Note: If you hit multiple tap conflict, run:
brew untap microsoft/mssql-preview && brew untap microsoft/msodbcsql
.Then test your SQL setup by:
sqlcmd -S localhost
orisql -v -k <connection-string>
.Related: SQL Server : Can't open lib 'ODBC Driver 13 for SQL Server'.
See: Installing the Microsoft ODBC Driver for SQL Server on Linux and macOS.