title: What's causing 'unable to connect to data source' for pyodbc?
body: <p>I'm trying to connect to an MSSQL database from python on Linux (SLES).</p>
  
  <p>I have installed pyodbc and Free TDS. From the command line:</p>
  
  <pre><code>tsql -H server -p 1433 -U username -P password
  </code></pre>
  
  <p>Connects to the server without a problem, however, from Python:</p>
  
  <pre><code>import pyodbc
  pyodbc.connect(driver='{FreeTDS}', server='server', database='database', uid='username', pwd='password')
  </code></pre>
  
  <p>Yields an error:</p>
  
  <pre><code>pyodbc.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
  </code></pre>
  
  <p>I'm finding this error unhelpfully vague. Even a suggestion to narrow down the issue would be helpful right now.</p>
  
  <p>Edit:
      Looking at the TDS log dump it looks like this is where the whole thing falls apart:</p>
  
  <pre><code>token.c:328:tds_process_login_tokens()
  util.c:331:tdserror(0x87bbeb8, 0x8861820, 20017, 115)
  odbc.c:2270:msgno 20017 20003
  util.c:361:tdserror: client library returned TDS_INT_CANCEL(2)
  util.c:384:tdserror: returning TDS_INT_CANCEL(2)
  util.c:156:Changed query state from IDLE to DEAD
  token.c:337:looking for login token, got  0()
  token.c:122:tds_process_default_tokens() marker is 0()
  token.c:125:leaving tds_process_default_tokens() connection dead
  login.c:466:login packet accepted
  util.c:331:tdserror(0x87bbeb8, 0x8861820, 20002, 0)
  odbc.c:2270:msgno 20002 20003
  util.c:361:tdserror: client library returned TDS_INT_CANCEL(2)
  util.c:384:tdserror: returning TDS_INT_CANCEL(2)
  mem.c:615:tds_free_all_results()
  error.c:412:odbc_errs_add: "Unable to connect to data source"
  </code></pre>