pymssql连接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 (10.33.35.239)\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 (10.33.35.239)\nNet-Lib error during Unknown error (10060)\n’)
二、解决办法具体描述
最近在搞一个基于opencv的停车场管理系统,在实现树莓派连接电脑上数据库时老是出错,在网上查了很多资料,试了很多种方法,都没用。搞了我三天,我都开始怀疑pymssql是否可以远程连接数据库了。因为在网上查资料,看到的server(host)参数的值要么是”127.0.0.1(本地默认ip)“、要么就直接使用变量代替,也没明确说这ip是哪个ip。而且我们打开”服务和应用程序“里的SQL Server配置管理器的SQL Server 网络配置里的tcp/ip的属性看时,里面也有很多ip地址,所以我就很迷惑,我们在连接数据库时到底用的是哪个ip。 到底是用哪个ip呢?试过之后我知道了,就是我们电脑的IP。 那么IP如何获取? 答:win+R—>输入cmd打开终端—>输入ipconfig查看电脑的IP。如图所示 这里要注意的是,你要看你的电脑连接的是WiFi,以太网(通俗的说就是插着网线的),如果你连的是WiFi,那么IP的取值为第三个”无线局域网适配器下的IP“,如果是连接以太网的,IP可以取第一个或第二个,因为他们都是以太网适配器。 我本来以为都是一样的,然后我电脑和树莓派连接的都是WiFi,但是我恰巧取的有事以太网适配器下的ip,导致我搞了很久。
其实连接不是数据库还有很多原因,==比如权限问题、sql server的tcp/ip 协议是否启动、电脑防火墙是否关闭等都有可能造成连接失败,找不到对应的数据库。==顺便说一下,实在连接不上了,可以在防火墙的高级设置那里新建一个tcp的入站规则(如图),端口号填写默认的1433,或者sql server配置管理器的网络协议里的tcp/ip 属性里的tcp动态端口。
|