Kyle Moffat Kyle Moffat - 1 year ago 195
Python Question

Connecting to Azure SQL with Python

I am trying to connect to a SQL Database hosted in Windows Azure through MySQLdb with Python.

I keep getting an error mysql_exceptions.OperationalError: (2001, 'Bad connection string.')

This information works when connecting through .NET (vb, C#) but I am definitely not having any luck here.

For below I used my server's name from azure then Is this the correct way to go about this?

Here is my code:

import MySQLdb

conn = MySQLdb.connect(host="<servername>", user="myUsername", passwd="myPassword", db="db_name")

cursor = conn.cursor()

I have also tried using pyodbc with FreeTDS with no luck.

Answer Source

@Kyle Moffat, what OS are you on? Here is how you can use pyodbc on Linux and Windows:



  • Open terminal Install Microsoft ODBC Driver 13 for Linux For Ubuntu 15.04 +

     sudo su  
  • For RedHat 6,7

    sudo su
  • Install pyodbc

    sudo -H pip install pyodbc

Once you install the ODBC driver and pyodbc you can use this Python sample to connect to Azure SQL DB

import pyodbc 
server = '' 
database = 'mydb' 
username = 'myusername' 
password = 'mypassword' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT @@version;") 
row = cursor.fetchone() 
while row: 
    print row[0] 
    row = cursor.fetchone()

If you are not able to install the ODBC Driver you can also try pymssql + FreeTDS

sudo apt-get install python
sudo apt-get --assume-yes install freetds-dev freetds-bin
sudo apt-get --assume-yes install python-dev python-pip
sudo pip install pymssql==2.1.1

Once you follow these steps, you can use the following code sample to connect:

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download