通过python连接Azure数据库

问题描述 投票:0回答:1

我正在尝试通过 python 代码连接到 Azure Synapse 数据库。我已经可以访问数据库本身,并且可以使用 Azure Data Studio 运行查询。但是,数据库连接失败指定:

错误:('HY000','[HY000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]无法打开登录请求的服务器“iberdrola.es”。登录失败。(40532) (SQLDriverConnect) ; [HY000] [Microsoft][SQL Server 的 ODBC 驱动程序 13][SQL Server]无法打开登录请求的服务器“iberdrola.es”(40532)')

下面是我使用的代码(无密码)。用户和密码与数据库本身中的用户和密码相同。 ODBC 控制器已安装。有什么想法为什么我不被允许吗?

提前致谢,

乔恩

import pyodbc

server = '*sql.azuresynapse.net'
database = 'D**l'
username = '***'
password = '***'
driver= '{ODBC Driver 13 for SQL Server}'

connection_string = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD=        {password}'

with pyodbc.connect(connection_string) as conn:
    with conn.cursor() as cursor:
        cursor.execute("SELECT TOP 10 * FROM ***")
        row = cursor.fetchone()
        while row:
            print (str(row[0]) + " " + str(row[1]))
            row = cursor.fetchone()

我的唯一目的是通过 python 正确连接到数据库,以便能够运行基于 Azure 数据库的程序。

python azure database-connection
1个回答
0
投票
connection_string = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}'

在上述连接字符串中,您在密码之间给出了空格,这可能是出现“登录失败”错误的原因。按以下格式提供连接字符串: connection_string = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}'

然后,您将能够使用以下代码成功连接到数据库:

import pyodbc server = 'synpool.sql.azuresynapse.net' database = 'dedsql' username = '<userNmae>' password = '<password>' driver= '{ODBC Driver 18 for SQL Server}' connection_string = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}' with pyodbc.connect(connection_string) as conn: with conn.cursor() as cursor: cursor.execute("SELECT * FROM student") row = cursor.fetchone() while row: print (str(row[0]) + " " + str(row[1])) row = cursor.fetchone()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.