我们的组织有一个远程SQL数据库,我正在尝试使用pyodbc连接它。
以下是测试代码:-
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=<name>.org;DATABASE=<dbname>;UID=<username>;PWD=<pwd>;PORT=<port>;')但是,当我试图使用pyodbc连接时,我无法连接并获得以下错误。
pyodbc.OperationalError:('08001','08001ODBC Server Server不存在或访问被拒绝。(17) (SQLDriverConnect);08001ODBC Server (Connect())。(53);08001ODBC Server连接字符串属性(0)')
我还尝试使用另一个工具连接到远程数据库(HeidiSQL),并正确地完成了这项工作。我能够连接到数据库。

但是我不明白为什么我不能用pyodbc连接。我还尝试使用IP地址而不是服务器名。
因此,我还在pyodbc连接中尝试了以下内容:-
SERVER=<name>.org,<port>
SERVER=<IP address>,<port>
SERVER=<IP address>我还更新了驱动程序。
我还尝试使用MySQL ODBC 3.51驱动程序:-
cnxn = pyodbc.connect('DRIVER={MySQL ODBC 3.51 Driver};SERVER=<name>.org;DATABASE=<dbname>;UID=<username>;PWD=<pwd>;PORT=<port>;')但后来我发现了错误:
pyodbc.InterfaceError:(‘no 002’,‘未找到IM002ODBC驱动程序管理器数据源名称,也没有指定默认驱动程序(0) (SQLDriverConnect)')
当我尝试使用Server本机客户端11.0驱动程序时,会出现以下错误:
cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=<name>.o`rg;DATABASE=<dbname>;UID=<username>;PWD=<pwd>;PORT=<port>;')pyodbc.OperationalError:('08001',‘08001SQLServer本机客户端11.0NarmPendsProvider:无法打开到Server 53的连接。(53) (SQLDriverConnect);08001SQLServer本机客户端11.0Login超时过期(0);08001SQLServer本机客户端11.0无效连接字符串属性(0);08001SQLServer本机客户端11.0A在建立到Server的连接时发生网络相关或特定实例的错误。找不到或无法访问服务器。检查实例名称是否正确,以及Server是否配置为允许远程连接。有关详细信息,请参阅Server联机丛书。(53)')
我还使用了这个指南Microsoft指南使用pyodbc连接到SQL
因为我在python应用程序中使用了docker容器,所以我希望它能够与数据库连接。
有谁能建议一下这个问题,或者我该如何解决这个问题?任何建议都欢迎。
发布于 2021-03-15 17:32:54
正如“Gord Thompson”和“larnu,@gvee”评论/回答的那样
我检查了pyodbc.drivers()返回的列表
import pyodbc
print(pyodbc.drivers() )它返回的地方
“Server”、“Server本机客户端11.0”、“Server本机客户端RDA 11.0”、“Server驱动程序17”、“PostgreSQL ANSI(X64)”、“PostgreSQL Unicode(X64)”、“Amazon(X64)”、“Microsoft驱动程序(*.mdb,.accdb)”、“Microsoft驱动程序(.xls、*.xlsx、*.xlsm、.xlsb)”、“Microsoft文本驱动程序(.txt,*.csv)”,“MySQL ODBC8.0 ANSI驱动程序”,“MySQL ODBC8.0 Unicode驱动程序”
我可以连接到"MySQL ODBC8.0 Unicode驱动程序“
cnxn = pyodbc.connect('DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=<name>.org;DATABASE=<dbname>;UID=<username>;PWD=<pwd>;PORT=<port>;')https://stackoverflow.com/questions/66639663
复制相似问题