7

I'm sure this issue has been raised an uncountable number of times before but perhaps, someone could still help me.
I am using pymssql v2.1.3 with Python 2.7.12 and the code that I used several times until yesterday to write data to my Azure SQL DB has somehow decided not to work anymore - for no apparent reason.

The firewall is set, my IP is in the whitelist, I can connect to the database using SQL Server Management Studio and query the data but I still keep getting this error when attempting to connect using pymssql.

The app is a Flask web-app and following is how I connect to the DB:

conn = pymssql.connect(server='myserver.database.windows.net', user='myusername@mydatabase', password='mypassword', database='mydatabase')
Syed
  • 340
  • 1
  • 3
  • 13
  • I would recommend using pymssql==2.1.1. There was a change in the later versions that prevents auto SSL handshakes. Alternatively, I would recommend using pyodbc: https://learn.microsoft.com/en-us/azure/sql-database/sql-database-develop-python-simple – meet-bhagdev Jan 05 '17 at 22:57

5 Answers5

5

This is likely due to the pymssql version. Did you upgrade pymssql? If yes, try reverting back to 2.1.1

sudo pip install pymssql==2.1.1
meet-bhagdev
  • 2,608
  • 18
  • 22
4

Not really a solution to the issue I raised, but using pypyodbc instead of pymssql works.

conn = pypyodbc.connect(driver='{SQL Server}',server='tcp:myserver.database.windows.net,1433',database='mydatabase', uid='myusername', pwd='mypassword')
Syed
  • 340
  • 1
  • 3
  • 13
1

freetds-dev might be missing on linux:

apt-get update && apt-get install freetds-dev

alecek
  • 11
  • 2
0

unbelievable the bug is still present... ENV: WSL2 on Windows 10

Fix -> switch to pyodbc:.

  1. sudo apt-get install unixodbc-dev && pip3 install pyodbc
  2. follow instruction for ubuntu https://learn.microsoft.com/de-de/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
    import pyodbc 
server = 'tcp:myserver.database.windows.net' 
database = 'mydb' 
username = 'myusername' 
password = 'mypassword' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
R J Funnel404
  • 93
  • 1
  • 8
0

I uninstall and install fresh pymssql and it works for me now.

  • 2
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Nov 04 '21 at 17:12