无法通过Python ODBC驱动程序连接到Azure SQL数据库

时间:2020-01-15 11:33:11

标签: odbc azure-sql-database pyodbc

我正在尝试连接到Azure SQL数据库。但是以某种方式,我不断收到以下错误:

pyodbc.OperationalError :(“ 08001”,“ [08001] [Microsoft] [ODBC驱动程序17 for SQL Server]客户端无法建立连接(0) (SQLDriverConnect)')

我已经安装了ODBC驱动程序17。

这是我的代码:

import pyodbc
server = 'mftaccountinghost.database.windows.net'
database = 'mft_accounting'
username = 'localhost'
password = '######'
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("select * from dbo.expense_zoho")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

这是我在Azure SQL数据库上的连接字符串 Connection String

有人知道为什么会弹出错误吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

请确保您已创建具有连接到数据库权限的SQL登录名。您可以尝试创建一个包含的数据库用户,如下所示,并使用包含的登录名连接到数据库。您是否已创建名为localhost的登录名?

CREATE USER yourlogin WITH PASSWORD = 'Yh-EhGFjh+';
GO
exec sp_addRoleMember 'db_datareader', 'yourlogin'; 
GO

请确保您已按照this文档中的说明创建了防火墙规则,并且服务器名和数据库名正确(您没有拼错它们)。

尝试使用SSMS之类的数据库工具进行连接。

答案 1 :(得分:0)

确保安装了正确的Python SQL Driver

请参考本教程:Quickstart: Use Python to query an Azure SQL database

这是我的示例pyodbc代码,在我的窗口中效果很好。

import pyodbc
server = 'sqlserverleon.database.windows.net'
database = 'Mydatabase'
username ='ServerAdmin'
password = '****'
driver= '{ODBC Driver 17 for SQL Server}'

cnxn = pyodbc.connect('DRIVER='+driver+
                      ';SERVER='+server+
                      ';PORT=1433;DATABASE='+database+
                      ';UID='+username+
                      ';PWD='+ password)

cursor = cnxn.cursor()
cursor.execute("SELECT * FROM TEST6")
row = cursor.fetchone()
while row:
    print (str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

希望这会有所帮助。