欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

我自己亲自做的 操作错误: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.2.39)\n') 有大用 有大大用 有大大大用

我自己亲自遇到的问题

import pymssql
import os

os.environ['TDSVER'] = '8.0'  # 🔥 关键:强制与 PHP 一致的 TDS 协议版本

try:
    conn = pymssql.connect(
        server="192.168.2.39",
        user="myusername",
        password="mypassword",
        database="mydatabase",
        port=1433,          # 明确指定端口
        charset='UTF-8',    # 与 PHP 保持一致
        timeout=5
    )
    print("✅ 数据库连接成功!")
    conn.close()
except Exception as e:
    print("❌ 数据库连接失败:", e)

C:\Users\shipingzhong\PycharmProjects1\pythonProject1\.venv\Scripts\python.exe C:\Users\shipingzhong\PycharmProjects1\pythonProject1\JSVendor.py 

❌ 数据库连接失败: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.2.39)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (192.168.2.39)\n')

我自己亲自做的的解决办法       # OK OOK 有大用   有大大用

1) 使用 python 3.11 ,,,,, 见   /node-admin/23198

2) 在 python 3.11 中安装 pymssql  2.2.8 ,,,,, 见   /node-admin/23198

3)  代码里面 os.environ['TDSVER'] 值改为  '7.0'

import pymssql
import os

os.environ['TDSVER'] = '7.0' # 🔥 关键:强制与 PHP 一致的 TDS 协议版本

try:
    conn = pymssql.connect(
        server="192.168.2.39",
        user="myusername",
        password="mypassword",
        database="mydatabase",
        port=1433,          # 明确指定端口
        charset='UTF-8',    # 与 PHP 保持一致
        timeout=5
    )
    print("✅ 数据库连接成功!")
    conn.close()
except Exception as e:
    print("❌ 数据库连接失败:", e)

C:\Users\shipingzhong\PycharmProjects1\pythonProject1\.venv\Scripts\python.exe C:\Users\shipingzhong\PycharmProjects1\pythonProject1\JSVendor.py 

✅ 数据库连接成功!



下面的可以不看了,即使看,也是为了了解原理罢了


pymssql 连接失败 20002, b‘DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed              

解决方案
1.重新安装旧版本  #  我自己亲自做的 OK 有大用 
      pip3    install pymssql==2.2.8  -i  https://pypi.mirrors.ustc.edu.cn/simple/             

或者 直接   pip3    install pymssql==2.2.8            

2.连接语句中指定tds版本

try:
    conn = pymssql.connect(
        server='',
        user='',
        password='',
        database='P',
        as_dict=True,
        tds_version='7.0'                
    )
except pymssql.OperationalError as e:
    print("连接数据库失败", e)
    
       

来自  https://blog.csdn.net/qq_37371407/article/details/142385098 

    


DB-Lib error message 20002, severity 9

操作系统Windows Server 2019 标准版

Python版本:3.9.12

数据库版本:Sqlserver 2012 (在局域网内的另一台服务器上)

pymssql版本:2.2.11

报错信息:(20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed 

解决办法:pymssql.connect 已传入server,port,database,user,password,charset等信息仍然报错,根据笔记: DB-Lib error message 20017 pymssql能连 MSSQLSERVER 2000但不能连2008 顽固的 DB-Lib error message 20017的快解 - 知乎

网页上的说明添加参数:'tds_version':'7.0'。

问题解决。


来自  https://blog.csdn.net/Hello_liucz/article/details/135161434  



用自定义的数据库指令提示20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed

羽少
发布于 2023-05-17 15:011559浏览

用软件自带的连接数据库和批量导入都没问题,但是导入太慢了,想换自定义里的指令试下,但一直提示20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed

收藏
全部回答2
不懂就要问
1个月前

回复
南佳
1个月前

你看下你的数据库表是否含有这些字段?如果没有的话,你先插入一行数据进行测试测试,看看会不会报错。一步一步排查

回复

来自  https://www.yingdao.com/community/detaildiscuss?id=d657a267-2ca5-4cc1-9a16-bfe1314c978a


Adaptive server connection failed (DB-Lib error message 20002, severity 9)
自适应服务器连接失败(DB-Lib 错误消息 20002,严重性 9)

10

I'm sure this issue has been raised an uncountable number of times before but perhaps, someone could still help me.
我敢肯定这个问题以前已经被提出过无数次了,但也许有人仍然可以帮助我。

I am using pymssql v2.1.3 with Python 2.7.12 and the code that I used several times until yesterday to write data to my Azure SQL DB has somehow decided not to work anymore - for no apparent reason.
我正在将 pymssql v2.1.3 与 Python 2.7.12 一起使用,直到昨天我才多次使用将数据写入我的 Azure SQL DB 的代码以某种方式决定不再工作 - 没有明显的原因。

The firewall is set, my IP is in the whitelist, I can connect to the database using SQL Server Management Studio and query the data but I still keep getting this error when attempting to connect using pymssql.
设置了防火墙,我的 IP 在白名单中,我可以使用 SQL Server Management Studio 连接到数据库并查询数据,但在尝试使用 pymssql 连接时我仍然不断收到此错误。

The app is a Flask web-app and following is how I connect to the DB:
该应用程序是一个 Flask 网络应用程序,以下是我连接到数据库的方式:

conn = pymssql.connect(server='myserver.database.windows.net', user='myusername@mydatabase', password='mypassword', database='mydatabase')

Improve this questionedited Dec 6, 2016 at 9:56asked Dec 6, 2016 at 8:47Syed's user avatar3681 gold badge3 silver badges15 bronze badges

Add a comment

6 Answers

7

Here can work on my workspace pymssql version: 2.2.8 python verison: 3.11
这里可以在我的工作区上工作 pymssql 版本:2.2.8 python 版本:3.11

conn = pymssql.connect(host=r'10.0.1.29:60001\sql2019', user='sa', password='sa', charset='UTF-8', atabase=r'database1', tds_version=r'7.0')

the tds_version should be set 7.0 if you used pymssql 2.2.8. you can have a try other tds_version(7.4,7.3,7.2,7.1,7.0...) if you still encountered issue
如果您使用 pymssql 2.2.8,则 tds_version 应设置为 7.0。如果仍然遇到问题,您可以尝试其他 tds_version(7.4,7.3,7.2,7.1,7.0...)

you can add addtional version informaiton and debug code
您可以添加其他版本信息和调试代码

print('pymssql version: ', pymssql.__version__)
print('get_dbversion: ', pymssql.get_dbversion())
print('version_info: ', pymssql.version_info())
os.environ['TDSDUMP'] = 'stdout'

Improve this answeranswered Sep 7, 2023 at 4:16Dave Wang's user avatar1582 silver badges6 bronze badgesSign up to request clarification or add additional context in comments.
注册以请求澄清或在评论中添加其他背景信息。

Comments  评论

  添加注释

5

This is likely due to the pymssql version. Did you upgrade pymssql? If yes, try reverting back to 2.1.1
这可能是由于 pymssql 版本造成的。你升级了 pymssql 吗?如果是,请尝试恢复到 2.1.1

sudo pip install pymssql==2.1.1

Improve this answeranswered Dec 12, 2016 at 20:52meet-bhagdev's user avatar2,74820 silver badges22 bronze badges

Comments  评论

  添加注释

3

Not really a solution to the issue I raised, but using pypyodbc instead of pymssql works.
这并不是我提出的问题的真正解决方案,但使用 pypyodbc 而不是 pymssql 是有效的。

conn = pypyodbc.connect(driver='{SQL Server}',server='tcp:myserver.database.windows.net,1433',database='mydatabase', uid='myusername', pwd='mypassword')

Improve this answeranswered Dec 6, 2016 at 9:54Syed's user avatar3681 gold badge3 silver badges15 bronze badges

Comments  评论


来自  https://stackoverflow.com/questions/40991190/adaptive-server-connection-failed-db-lib-error-message-20002-severity-9 


普通分类: