[英]Unable to connect to mssql server with SQLalchemy, operational error and interface error
I have been trying to connect to mssql database with the help of SQLalchemy, but unable to connect.我一直在尝试借助 SQLalchemy 连接到 mssql 数据库,但无法连接。 I have encountered 2 different kinds of errors- Here is my code-
我遇到了 2 种不同类型的错误-这是我的代码-
import sqlalchemy
from sqlalchemy import create_engine
engine =
create_engine("mssql+pymssql://username:password@DSNsource")
connection = engine.connect()
AND this below code和下面的代码
engine =
sqlalchemy.create_engine('mssql+pyodbc://user:password@server/database', pool_pre_ping=True)
connection = engine.connect()
are giving me the following error--给我以下错误--
InterfaceError: (pymssql.InterfaceError) Connection to the database failed for an unknown reason.
InterfaceError: (pymssql.InterfaceError) 由于未知原因连接到数据库失败。 (Background on this error at: http://sqlalche.me/e/rvf5 )
(此错误的背景: http : //sqlalche.me/e/rvf5 )
Tried using pyodbc instead of pymssql but it gave me a different error.尝试使用 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: Could not open a connection to SQL Server [53]. (53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 13 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (53)') (Background on this error at: http://sqlalche.me/e/e3q8 )
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 )
The pymssql library is probably deprecated and might become unusable soon. pymssql 库可能已被弃用,并且可能很快就无法使用。 I ended up using pyodbc with the below code:
我最终使用 pyodbc 和以下代码:
import pyodbc
导入pyodbc
dsn="DRIVER={SQL Server name};server=server_name;database=db_name;uid=user_name;pwd=password" cnxn = pyodbc.connect(dsn) cursor = cnxn.cursor()
dsn="DRIVER={SQL 服务器名称};server=server_name;database=db_name;uid=user_name;pwd=password" cnxn = pyodbc.connect(dsn) cursor = cnxn.cursor()
Before that, go to control panel -> Administrative tools ->ODBC data sources (32 or 64 bit based on your system configuration), go to System DSN and make sure the DSN you are trying to use is present.在此之前,转至控制面板 -> 管理工具 -> ODBC 数据源(32 位或 64 位基于您的系统配置),转至系统 DSN 并确保您尝试使用的 DSN 存在。 If not, add one.
如果没有,请添加一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.