我一直试图在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] [SQL Server的ODBC驱动程序13]命名管道提供程序:无法打开与SQL Server [53]的连接。(53)( SQLDriverConnect); [08001] [Microsoft] [用于SQL Server的ODBC驱动程序13]登录超时已过期(0); [08001] [Microsoft] [用于SQL Server的ODBC驱动程序13]与网络有关或特定于实例的错误发生在建立与SQL Server的连接。找不到或无法访问服务器。检查实例名称是否正确以及是否将SQL Server配置为允许远程连接。有关更多信息,请参见SQL Server联机丛书(53)')(有关此背景错误:http://sqlalche.me/e/e3q8)
答案 0 :(得分:0)
pymssql库可能已被弃用,可能很快将变得不可用。我最终将pyodbc与以下代码一起使用:
导入pyodbc
dsn =“ DRIVER = {SQL Server名称};服务器=服务器名称;数据库=数据库名称; uid =用户名称; pwd =密码” cnxn = pyodbc.connect(dsn) cursor = cnxn.cursor()
在此之前,请转到控制面板->管理工具-> ODBC数据源(基于您的系统配置的32或64位),转到系统DSN并确保存在要使用的DSN。如果没有,请添加一个。