如何使用dsn.ini文件进行odbc连接?

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

我正在尝试使用 jupyter 笔记本中的 ipython-sql magic 使用 odbc 连接来连接到 msserver。

我想知道如何使用 dsn.ini 文件加载配置并连接到服务器。

参考资料:

我的 dsn.ini 文件

[DB_Practice]
username=sa
password=myrealpassword
host=myoriginalservername
drivername=ODBC Driver 17 for SQL Server
database=Practice

错误

%load_ext sql
%config SqlMagic.dsn_filename='./dsn.ini'
%sql --section DB_Practice


Environment variable $DATABASE_URL not set, and no connect string given.
Connection info needed in SQLAlchemy format, example:
               postgresql://username:password@hostname/dbname
               or an existing connection: dict_keys([])

问题

如何使用odbc和dsn.ini文件连接到msserver?

python sql jupyter-notebook odbc ipython-sql
1个回答
1
投票

它有点旧,但我想我会发布一个答案,以防其他人遇到这个问题。

我让它工作的顺序如下: 首先,我尝试让它在没有 dsn 的情况下工作,只是为了确保有连接并且我实际上可以查询我的数据库。您必须安装 pyodbc 驱动程序:

pip install pyodbc

并且可以通过sqlalchemy引擎:

from sqlalchemy import create_engine
from sqlalchemy.engine import URL

connection_url = URL.create(
    "mssql+pyodbc",
    username="sa",
    password="MyPassword!",
    host="localhost",
    port=1433,
    database="master",
    query={
        "driver": "ODBC Driver 18 for SQL Server",
        "Encrypt": "yes",
        "TrustServerCertificate": "yes",
    },
)
engine = create_engine(connection_url)

然后,通过传递该引擎,直接通过笔记本运行连接:

%load_ext sql
%sql engine

因此,一旦您能够设置引擎,只需将 dsn 文件消费到其中即可, 在 ini 文件中设置正确的参数并按如下方式使用它:

%config SqlMagic.dsn_filename='./dsn.ini'
%sql --section DB_CONFIG_1 
© www.soinside.com 2019 - 2024. All rights reserved.