【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib ...

打印 上一主题 下一主题

主题 552|帖子 552|积分 1656


已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’)

一、分析题目配景

在利用pymssql库连接SQL Server数据库时,开发人员有时会遇到如下错误:
  1. pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’)
复制代码
场景描述:
这种错误通常发生在尝试连接SQL Server数据库时,大概是在测试环境或生产环境中利用pymssql进行数据库利用时。
代码片断:
假设你正在开发一个Python脚本,用于从SQL Server数据库中提取数据并进行处置惩罚。然而,当你运行脚本时,出现了上述错误提示。
二、大概出错的原因

导致此错误的原因大概有多种,包括但不限于以下几种:

  • 服务器地址错误:提供的数据库服务器地址不精确或服务器不可达。
  • 端标语错误:连接到数据库的端标语不精确或被防火墙制止。
  • 网络连接题目:客户端与数据库服务器之间的网络连接不稳固或被阻断。
  • 数据库服务器未运行:SQL Server数据库服务器未启动或瓦解。
  • 防火墙设置:防火墙设置制止了客户端与数据库服务器之间的连接。
  • DNS解析题目:提供的服务器地址无法通过DNS解析到精确的IP地址。
三、错误代码示例

以下是一个大概导致该错误的代码示例:
  1. import pymssql
  2. # 尝试连接到SQL Server数据库
  3. conn = pymssql.connect(server='wrong_server_address', user='username', password='password', database='dbname')
  4. # 创建一个游标对象
  5. cursor = conn.cursor()
  6. # 执行SQL查询
  7. cursor.execute('SELECT * FROM my_table')
  8. # 获取查询结果
  9. rows = cursor.fetchall()
  10. for row in rows:
  11.     print(row)
  12. # 关闭连接
  13. conn.close()
复制代码
表明错误之处:


  • server参数的值为’wrong_server_address’,这是一个错误的服务器地址,导致客户端无法连接到数据库服务器。
四、精确代码示例

为了精确解决该错误,可以按照以下步骤利用:

  • 验证服务器地址:
    确保提供的服务器地址是精确的,可以通过ping命令或其他工具验证服务器地址的可达性。
  • 验证端标语:
    确保利用精确的端标语,默认的SQL Server端标语为1433。如果利用了不同的端标语,确保防火墙允许该端口的通信。
  • 检查网络连接:
    确保客户端与数据库服务器之间的网络连接正常,可以通过ping命令检查连接。
  • 确保数据库服务器正在运行:
    确保SQL Server数据库服务器已启动并正常运行。
  • 配置防火墙:
    确保防火墙配置允许客户端与数据库服务器之间的通信。
  • 检查DNS解析:
    确保提供的服务器地址可以通过DNS解析到精确的IP地址。
综合以上步骤,精确代码示例如下:
  1. import pymssql
  2. # 使用正确的服务器地址、端口号、用户名和密码连接到SQL Server数据库
  3. conn = pymssql.connect(server='correct_server_address', user='username', password='password', database='dbname', port=1433)
  4. # 创建一个游标对象
  5. cursor = conn.cursor()
  6. # 执行SQL查询
  7. cursor.execute('SELECT * FROM my_table')
  8. # 获取查询结果
  9. rows = cursor.fetchall()
  10. for row in rows:
  11.     print(row)
  12. # 关闭连接
  13. conn.close()
复制代码
表明解决方法:


  • 将server参数的值更改为’correct_server_address’,这是精确的服务器地址。
  • 确保其他连接参数(如user、password和database)也精确无误。
五、注意事项

在编写代码时,需注意以下几点,以避免类似错误:

  • 验证服务器地址:在代码中利用的服务器地址应事先验证其可达性,确保地址精确。
  • 利用精确的端标语:确保连接到数据库时利用的端标语是精确的,并且防火墙允许该端口的通信。
  • 检查网络连接:在摆设环境中,定期检查客户端与数据库服务器之间的网络连接状态,确保网络连接稳固。
  • 监控数据库服务器状态:确保SQL Server数据库服务器正在运行,并配置适当的监控机制,以便在服务器出现题目时实时接纳步伐。
  • 配置防火墙:确保防火墙配置允许客户端与数据库服务器之间的通信,避免不须要的阻断。
  • 调试和测试:在开发和测试阶段,仔细调试和测试连接代码,确保所有参数设置精确。
通过遵循上述步骤和注意事项,您应该可以大概轻松解决“pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’”错误,并成功连接到SQL Server数据库。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

麻花痒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表