python - pyodbc 连接到 SQL Server 2012 问题

标签 python sql-server sql-server-2012 pyodbc

下面是回溯。我已经阅读了所有其他 SO 线程,用谷歌搜索了两个多小时,但无法弄清楚。这是我尝试过的:

  • 连接字符串的 SQL 身份验证和 Windows 身份验证版本。
  • 使用 SQL Server 名称(文本)以及服务器的 IP 地址
  • 包括和排除端口 1443(SQL 服务器的默认 tcp/ip 端口)
  • 在 Windows 防火墙中创建新规则以允许端口 1443 的入站/出站 TCP
  • 列表项

    追溯(最近的调用最后): 文件“pythonscript.py”,第 75 行,位于 conn = pyodbc.connect(driver='{SQL Server}', server='ipaddress,1443', database='master', uid='XYZ\login', pwd='password') pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒绝访问。(17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL服务器驱动][DBNETLIB]ConnectionOpen (Connect()). (53)'

以下是我为连接字符串尝试过的一些示例:

conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',server = '1.1.1.1,1443', database = 'master')

然后

conn = pyodbc.connect(driver='{SQL Server}', server='1.1.1.1,1443', database='master', uid='xyz\login', pwd='pwd'

然后我还用服务器名称(文本)而不是 IP 地址尝试了以上两种方法。我现在不知道如何让它发挥作用。

最佳答案

您是否确认服务器之间存在连接?尝试远程登录 -

远程登录服务器名称 1433

如果连接成功,那么您可以专注于 Python 或连接字符串的问题。

在您的连接字符串中将其更改为使用 PORT 参数而不是 ,1433。像-

服务器=1.1.1.1;端口=1433;

我还想说你最好传递整个字符串。这是我在 Linux 上通常使用 FreeTDS 所做的事情 -

self.db_connection = pyodbc.connect("DRIVER=FreeTDS;SERVER=1.1.1.1;PORT=1433;DATABASE=myDB;UID=myUser;PWD=myPass;TDS_Version=8.0;")

关于python - pyodbc 连接到 SQL Server 2012 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178231/

相关文章:

python - ZMQ : "Resource temporarily unavailable" when connecting zmq socket

python - 涉及pyqt时文件复制太慢

php - 从PHP连接到MSSQL Server

python - 如何使用 python 计算 MSSQL 查询执行时间

java - 使用 jTDS 连接到 SQL Server 2012 可用性组监听器

sql-server-2012 - 何时在 SSIS 的 Lookup 组件中选择缓存

python - 将python中的unicode字符串解析为字典

python - 什么是 spec 和 spec_set

c# - 引用数据表 C# 更新 SQL 表的最佳方法

sql-server - SQL Server 数据库图显示关系