6

我已经下载了 Pymssql 以连接到 sqlserver db,但连接字符串抛出 error-pymssql.connect(pymssql.c.:7990)

import pymssql
pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master')

有人有幸连接到 sqlserver 吗?

Error:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pymssql.pyx", line 556, in pymssql.connect (pymssql.c:7990)
    raise OperationalError(e[0])
pymssql.OperationalError: (20009, 'Net-Lib error during Unknown error')
4

3 回答 3

3

我遇到了同样的Net-Lib error during Unknown error错误信息。对我来说,问题是我需要在我的 SQL Server Express 实例中启用 TCP/IP 和命名管道。

尝试进入 SQL Server 配置管理器并打开 TCP/IP 和命名管道。

于 2013-12-21T05:28:04.410 回答
0

我的设置:

  • 微软视窗 XP SP3。
  • Microsoft SQL Server 2008(不是 R2)。
  • CPython 2.7.4。
  • pymssql 2.0.0(与easy_installIIRC 一起安装)。

我忘了创建一个sa登录帐户,所以我记得几周前寻找一种创建它的方法;以前,我使用 Windows 身份验证登录(例如,使用 SQL Server Management Studio)。我按照https://stackoverflow.com/a/3781737创建了sa用户帐户。

在那个中间步骤之后,我开始使用 Python。

import pymssql
conn = pymssql.connect(host=r'MACHINE\SQLEXPRESS', user=r'sa', password=r'password', database=r'MYDB')
cur = conn.cursor()
cur.execute(r'SELECT COUNT(*) FROM mytable')
row = cur.fetchone()
print row[0]
cur.close()
conn.close()

我对你的问题的猜测是你应该在连接参数中使用原始字符串——特别是host参数,它接受一个反斜杠。

我还使用 CentOS 5.8 64 位机器(pymssql 1.0.2,freetds 0.91)进行了尝试。为此,我还创建了一个$HOME/.freetds.conf文件,其内容为

[global]
tds version = 10.0

[MACHINE]
host = 192.168.1.2
port =1433
tds version = 10.0
encryption = request

我忘记了从哪里选择该文件的配置示例。

希望有帮助。

于 2013-05-16T14:54:32.740 回答
-3

您必须声明字符集示例:

pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master',chartset="your_charset")
于 2013-12-22T04:55:09.383 回答