首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用pyodbc连接到远程SQL数据库。

无法使用pyodbc连接到远程SQL数据库。
EN

Stack Overflow用户
提问于 2021-03-15 14:16:06
回答 1查看 1.2K关注 0票数 0

我们的组织有一个远程SQL数据库,我正在尝试使用pyodbc连接它。

以下是测试代码:-

代码语言:javascript
复制
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连接中尝试了以下内容:-

代码语言:javascript
复制
SERVER=<name>.org,<port>

SERVER=<IP address>,<port>

SERVER=<IP address>

我还更新了驱动程序。

我还尝试使用MySQL ODBC 3.51驱动程序:-

代码语言:javascript
复制
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驱动程序时,会出现以下错误:

代码语言:javascript
复制
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容器,所以我希望它能够与数据库连接。

有谁能建议一下这个问题,或者我该如何解决这个问题?任何建议都欢迎。

EN

回答 1

Stack Overflow用户

发布于 2021-03-15 17:32:54

正如“Gord Thompson”和“larnu,@gvee”评论/回答的那样

我检查了pyodbc.drivers()返回的列表

代码语言:javascript
复制
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驱动程序“

代码语言:javascript
复制
cnxn = pyodbc.connect('DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=<name>.org;DATABASE=<dbname>;UID=<username>;PWD=<pwd>;PORT=<port>;')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66639663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档