I'm attempting to connect to a SQL Server 2005 DB from my Mac using unixODBC and FreeTDS as I have outlined here. However, when I try to connect in to a different DB using the same setup, I get:
Connection Failed:[FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist.
Here is my freetds.conf setup:
[my_db] host = 22.214.171.1249 port = 1433 tds version = 8.0
And here is my odbc.ini:
[my_dsn] Driver = /opt/local/lib/libtdsodbc.so Description = My Database Trace = no Servername = my_db Database = MyDB [ODBC Data Sources] my_dsn = FreeTDS
I am still able to connect to the other DB I set up on this computer (described in my blog post linked above), so I'm pretty sure that the error isn't on the Mac end. I've verified on the server that I'm using the correct IP address and port. Any thoughts on what could be the problem, and if it's on the server end?
This question is tagged with
~ Asked on 2011-12-14 20:42:15
1. See information about the SQL server
tsql -LH SERVER_IP_ADDRESS locale is "C" locale charset is "646" ServerName TITAN InstanceName MSSQLSERVER IsClustered No Version 8.00.194 tcp 1433 np \\TITAN\pipe\sql\query
2. Set your freetds.conf
tsql -C freetds.conf directory: /usr/local/etc [TITAN] host = SERVER_IP_ADDRESS port = 1433 tds version = 7.2
tsql -S TITAN -U user -P password
'dsn' => 'dblib:host=TITAN:1433;dbname=YOURDBNAME',
See also http://www.freetds.org/userguide/confirminstall.htm (Example 3-5.)
If you get message 20009, remember you haven't connected to the machine. It's a configuration or network issue, not a protocol failure. Verify the server is up, has the name and IP address FreeTDS is using, and is listening to the configured port.
~ Answered on 2014-10-07 06:01:13
After countless hours of frustration I managed to get all working:
[FreeTDS] Description = FreeTDS Driver v0.91 Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so fileusage=1 dontdlclose=1 UsageCount=1
[test] Driver = FreeTDS Description = My Test Server Trace = No #TraceFile = /tmp/sql.log ServerName = mssql #Port = 1433 instance = SQLEXPRESS Database = usedbname TDS_Version = 4.2
[mssql] host = hostnameOrIP instance = SQLEXPRESS #Port = 1433 tds version = 4.2
First test connection (mssql is a section name from freetds.conf):
tsql -S mssql -U username -P password
You must see some settings but no errors and only a 1> prompt. Use quit to exit.
Then let's test DSN/FreeTDS (test is a section name from odbc.ini; -v means verbose):
isql -v test username password -v
You must see message Connected!
~ Answered on 2016-12-14 01:01:06