我尝试使用sqlalchemy连接到计算机上的SQL Express Server,但收到错误



我正在尝试使用sqlalchemy连接到我的机器上的SQL Express服务器,但我得到一个错误。下面是我的代码:

import sqlalchemy as sal
import pandas as pd
sqlcon=sal.create_engine('mssql+pyodbc://@' + 'DESKTOP-A1BUCDRSQLEXPRESS' + '/' + 'Northwind' + '?driver=ODBC+Driver+13+for+SQL+Server')
df = pd.read_sql_query('select * from Orders', sqlcon)

这里是我得到的错误:

InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
(Background on this error at: https://sqlalche.me/e/14/rvf5)

有没有人对我在这里可能出错的地方有任何想法?

您的URL计算结果为:

mssql+pyodbc://@DESKTOP-A1BUCDR\SQLEXPRESS/Northwind?driver=ODBC+Driver+13
+for+SQL+Server

错误指向没有找到数据源名称(DSN),我认为您一定不想使用它,因为您提供了看起来像主机名和驱动程序参数的内容。

也可以:

mssql+pyodbc://<UID>:<PWD>@DESKTOP-A1BUCDR:1433/Northwind?driver=ODBC+Driver+17+for+SQL+Server

如果你的端口是默认的(1433),你真的不需要添加它。

为什么你的主机名是DESKTOP-A1BUCDRSQLEXPRESS?为什么你使用ODBC Driver 13 for SQL Server而不是最新的版本?

您可以尝试使用URL built for your hostname或直接使用pyODBC string

最新更新