我正在尝试使用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,但没有运气。
答案 0 :(得分:8)
<强>窗:强>
安装Microsoft ODBC驱动程序11或13:
以管理员身份打开cmd.exe
使用pip安装pyodbc - Python包管理器
cd C:\Python27\Scripts>
pip install pyodbc
<强> 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