pymssql 连接 sql server express

2020-04-29 11:11:52 +08:00
 atuocn

忽然惊喜的发现,自己原来写在 oschina 上的文章,找到入口了。自从它要求绑定手机后,因不想提供手机号,我再也没找到原来的文章。既然失而复得,转几个还有点价值的文章到这里,以免再次丢失。

原文写于 2017/06/19 22:16


用 pymssql 链接 sql server express 2016 死活连接不上,报告错误:

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 (10035)\n'

sql server managerment studio 是正常连接的; pymssql 连接远程的 sql server 2014 标准版也是正常的。pymssql 的 github 上有几个关于此的 issue 都被不由分说的关闭了,似乎是个不言而喻的使用问题。然而一番搜索,没有太多头绪。后来在 stack over flow 找到一个帖子: pymssql.OperationalError: DB-Lib error message 20009, severity 9 ,按帖子的说法,在 sql server 的配置管理中,启用 tcp/ip 协议,并给 127.0.0.1 指定 1433 端口即可。然而我试了半天,不起作用。 最终在这篇文章中找到答案: How to: Configure Express to accept remote connections 原来除了 启用 tcp/ip 协议,还需启动 SQL Browser Service

总结如下:

  1. 打开“SQL Server Configuration Manager”,找不到的话,可在计算机管理 -> 服务和应用程序中找到.
  2. 在 SQL Server Network Configuration -> Protocols for SQLEXPRESS 中启用 TCP/IP 协议
  3. TCP/IP -> Properties -> IP Addresses,在 TCP/IP 节点上打开属性窗口,在 IPALL 条目中,清除 TCP Dynamic Ports 的值,在 TCP Port 中填写 1433,sql server 默认的端口号是 1433 。
  4. 重启 sql server 服务
  5. 重要 ,启动 SQL Browser Service 。sql server express 默认是禁止该服务,改为”自动“,并启动它。
1776 次点击
所在节点    Python
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/667210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX