我正在尝试使用 jupyter 笔记本中的 ipython-sql magic 使用 odbc 连接来连接到 msserver。
我想知道如何使用 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?
它有点旧,但我想我会发布一个答案,以防其他人遇到这个问题。
我让它工作的顺序如下: 首先,我尝试让它在没有 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