首页 > 解决方案 > 无法连接到带有 SQLalchemy、操作错误和接口错误的 mssql 服务器

问题描述

我一直在尝试在 SQLalchemy 的帮助下连接到 mssql 数据库,但无法连接。我遇到了 2 种不同类型的错误-这是我的代码-

import sqlalchemy
from sqlalchemy import create_engine 
engine = 
create_engine("mssql+pymssql://username:password@DSNsource")
connection = engine.connect()

和下面的代码

engine = 
sqlalchemy.create_engine('mssql+pyodbc://user:password@server/database', pool_pre_ping=True)
connection = engine.connect()

给我以下错误-

InterfaceError: (pymssql.InterfaceError) 与数据库的连接因未知原因而失败。(此错误的背景:http ://sqlalche.me/e/rvf5 )

尝试使用 pyodbc 而不是 pymssql 但它给了我一个不同的错误。

import sqlalchemy
from sqlalchemy import create_engine 
engine = 
create_engine("mssql+pyodbc://username:password@DSNsource")
connection = engine.connect()

OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 13 for SQL Server]Named Pipes Provider: 无法打开与 SQL Server [53] 的连接。(53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 13 for SQL Server]登录超时已过期 (0); [08001] [Microsoft][ODBC Driver 13 for SQL Server]建立连接时发生与网络相关或特定于实例的错误到 SQL Server。未找到或无法访问服务器。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。(53)')(此错误的背景位于:http://sqlalche.me/e/e3q8

标签: pythonsqlalchemy

解决方案


pymssql 库可能已被弃用,并且可能很快变得无法使用。我最终使用 pyodbc 和以下代码:

导入pyodbc

dsn="DRIVER={SQL Server 名称};server=server_name;database=db_name;uid=user_name;pwd=password" cnxn = pyodbc.connect(dsn) cursor = cnxn.cursor()

在此之前,转到控制面板 -> 管理工具 ->ODBC 数据源(32 位或 64 位,取决于您的系统配置),转到系统 DSN 并确保您尝试使用的 DSN 存在。如果没有,请添加一个。


推荐阅读