如何使用 pyodbc 在 Python 中连接到 Azure SQL 数据库?

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

我想通过

pyodbc
Python 包连接到 Azure SQL 数据库。我通过导航到 Azure SQL 数据库资源并转到 Settings 组下的Connection strings 菜单来获取连接字符串。之后,我选择了 ODBC 选项卡并复制了包含用户名和密码身份验证的连接字符串。

以下代码尝试连接数据库:

import pyodbc


driver = "{ODBC Driver 18 for SQL Server}"
server = "<server>"
database = "<database>"
username = "<user_name>"
password = "<password>"

conn_str = str.format(
    "Driver={0};Server={1},1433;Database={2};Uid={3};Pwd={4}",
    driver,
    server,
    database,
    username,
    password,
)

connection = pyodbc.connect(conn_str)

connection.close()

但是,我收到以下错误:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect)')

python sql-server azure pyodbc
1个回答
0
投票

在连接数据库之前,您需要下载合适的 Microsoft ODBC Driver for SQL Server 然后安装它:

  1. 在 Windows 中,下载适当的可执行文件并安装它。对于 x64 架构:https://go.microsoft.com/fwlink/?linkid=2249006
  2. 在 Linux 上,选择正确的发行版,然后下载并安装软件包。例如在 Debian 12 上:
curl https://packages.microsoft.com/debian/12/prod/pool/main/m/msodbcsql18/msodbcsql18_18.3.2.1-1_amd64.deb -o msodbcsql18.deb
ACCEPT_EULA=Y dpkg --install msodbcsql18.deb

之后,您可以连接到Azure SQL数据库:

connection = pyodbc.connect(conn_str)

# Print out the connection information
print(connection)
print(connection.getinfo(pyodbc.SQL_DBMS_NAME))
print(connection.getinfo(pyodbc.SQL_DBMS_VER))

connection.close()

示例输出为:

<pyodbc.Connection object at 0x0000025E9F50F910>
Microsoft SQL Server
12.00.5349
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.