簡體   English   中英

我正在嘗試使用 sqlalchemy 連接到我機器上的 SQL Express 服務器,但出現錯誤

[英]I'm trying to connect to a SQL Express Server on my machine using sqlalchemy but I'm getting an error

我正在嘗試使用 sqlalchemy 連接到我機器上的 SQL Express 服務器,但出現錯誤。 這是我的代碼:

import sqlalchemy as sal
import pandas as pd

sqlcon=sal.create_engine('mssql+pyodbc://@' + 'DESKTOP-A1BUCDR\SQLEXPRESS' + '/' + '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-A1BUCDR\SQLEXPRESS 為什么你使用ODBC Driver 13 for SQL Server而不是更新的版本?

您可以嘗試使用URL built for your hostname或直接使用pyODBC string

使用 Windows 身份驗證連接到 SQL Server Express 的格式是:

import sqlalchemy

sqlcon = sqlalchemy.create_engine('mssql://DESKTOP-A1BUCDR\SQLEXPRESS/AdventureWorks?driver=ODBC+Driver+17+for+SQL+Server') 

DESKTOP-A1BUCDR\SQLEXPRESS 是服務器名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM