python - 无法连接到带有 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)
解决方案
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 存在。如果没有,请添加一个。
推荐阅读
- javascript - d3 - 使用鼠标滚轮缩放时禁用滚动?
- java - 使用 AWS Java S3 SDK TransferManager 从 SFTP 流恢复上传
- c# - EntityFramework SaveChanges 将 EntityState 从“添加”移动到“分离”
- excel - VBA MSXML2.DOMDocument60 LoadXML 最多只能加载 300 个“条目”项
- c# - 将许多项目添加到 ListView 是滞后的并且需要一段时间
- ruby - 在 ActiveRecord 中迁移和播种数据时 FOREIGN KEY 约束失败
- sql - 如何在一个 SQL 查询中使用 CTE 在 Postgres 中插入两个表
- python - 处理已完成的复选框 [web2py]
- r - 为什么purrr包的map函数没有抓取所有的url数据?
- sql-server - 为少数 SSDT 项目共享源代码的方法?