欢迎各位兄弟 发布技术文章
这里的技术是共享的
我自己亲自遇到的问题
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'
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版本
来自 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
来自 https://www.yingdao.com/community/detaildiscuss?id=d657a267-2ca5-4cc1-9a16-bfe1314c978a
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')
ShareImprove this questionedited Dec 6, 2016 at 9:56asked Dec 6, 2016 at 8:47Syed368
I would recommend using pymssql==2.1.1. There was a change in the later versions that prevents auto SSL handshakes. Alternatively, I would recommend using pyodbc: learn.microsoft.com/en-us/azure/sql-database/…
我建议使用 pymssql==2.1.1。在后来的版本中有一个更改,阻止自动 SSL 握手。或者,我建议使用 pyodbc:learn.microsoft.com/en-us/azure/sql-database/... – meet-bhagdev Jan 5, 2017 at 22:57
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'
ShareImprove this answeranswered Sep 7, 2023 at 4:16Dave Wang158 Sign up to request clarification or add additional context in comments.
注册以请求澄清或在评论中添加其他背景信息。
添加注释
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
ShareImprove this answeranswered Dec 12, 2016 at 20:52meet-bhagdev2,748
添加注释
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')
ShareImprove this answeranswered Dec 6, 2016 at 9:54Syed368