我正在尝试通过 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 数据库的程序。
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()