我正在尝试连接到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()
有人知道为什么会弹出错误吗?
谢谢。
答案 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()
希望这会有所帮助。