0

我有以下连接到 SQL 服务器。

conn = pypyodbc.connect("DRIVER={SQL Server};server='sqldev\\dwmaster',Database='risk',TrustedConnection=yes")
cur = conn.cursor()

但是,当我运行应用程序时,它会引发错误

pypyodbc.DatabaseError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]Specified SQL server not found.')

我能够从 OSQL 和 SQLCMD 访问 SQLserver。

4

2 回答 2

0

谢谢你的建议山姆。

最后,通过设置 32 位 ODBC 驱动程序解决了这个问题,而不是使用连接字符串。

于 2013-06-06T20:25:53.807 回答
0

您由于网络连接或命名实例而遇到问题。命名实例是“dwmaster”/服务器键/值的一部分。默认情况下 SQL 在 tcp 1433 上,但命名实例可能不在该端口上,也可能在动态端口上。为了获取端口,客户端询问 UDP 1434 上的 SQL Browser 服务 - “DWMASTER 实例的端口是什么?”

一些数据库提供程序不与 sql 浏览器交互以查找实例正在侦听的端口,因此您必须在连接字符串中指定它。您可能还希望将命名实例设置为使用静态 IP。

要排除命名实例有问题,您可以在服务器启动时在 sql 管理日志中查看它在哪个端口上运行。在连接字符串中指定端口号,这可能会奏效。您必须查阅您的 pypy 文档以了解如何指定端口。

如果您没有成功,您应该测试与 dns 名称和端口的连接。防火墙可能会阻止您的通信。您可以使用 telnet、portqry 或其他工具,具体取决于您的操作系统。Ping 不是有效的测试。如果您无法建立连接,您需要与服务器/网络支持人员联系。

Telnet 测试到 sql 默认端口

telnet myserver -1433

测试sql浏览器

portqry -n server -p udp -e 1434

测试sql默认

portqry -n server -e 1433
于 2013-06-06T20:12:12.607 回答