使用Python连接到Azure SQL

时间:2016-09-13 03:37:47

标签: python azure azure-sql-database

我正在尝试使用Python通过MySQLdb连接到Windows Azure中托管的SQL数据库。

我一直收到错误mysql_exceptions.OperationalError:(2001,'Bad connection string。')

当通过.NET(vb,C#)连接时,此信息有效,但我绝对没有运气。

对于下面我使用了我的服务器名称来自azure然后.database.windows.net这是正确的方法吗?

这是我的代码:

#!/usr/bin/python
import MySQLdb

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

cursor = conn.cursor()

我也尝试过使用pyodbc和FreeTDS,但没有运气。

1 个答案:

答案 0 :(得分:8)

@Kyle Moffat,你在做什么操作系统?以下是在Linux和Windows上使用pyodbc的方法: https://msdn.microsoft.com/en-us/library/mt763261(v=sql.1).aspx

<强>窗:

<强> Linux的:

  • 打开终端 为Linux安装适用于Ubuntu 15.04的Microsoft ODBC驱动程序13

     sudo su  
     wget https://gallery.technet.microsoft.com/ODBC-Driver-13-for-Ubuntu-b87369f0/file/154097/2/installodbc.sh  
     sh installodbc.sh  
    
  • 对于RedHat 6,7

    sudo su
    wget https://gallery.technet.microsoft.com/ODBC-Driver-13-for-SQL-8d067754/file/153653/4/install.sh 
    sh install.sh 
    
  • 安装pyodbc

    sudo -H pip install pyodbc
    

安装ODBC驱动程序和pyodbc后,您可以使用此Python示例连接到Azure SQL DB

import pyodbc 
server = 'tcp:myserver.database.windows.net' 
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()

如果您无法安装ODBC驱动程序,您还可以尝试使用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

按照这些步骤操作后,您可以使用以下代码示例进行连接: https://msdn.microsoft.com/en-us/library/mt715796(v=sql.1).aspx