PYmssql python 连接字符串

use*_*619 6 python pymssql

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

import pymssql
pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master')
Run Code Online (Sandbox Code Playgroud)

有人有运气连接到 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')
Run Code Online (Sandbox Code Playgroud)

jba*_*sta 0

我的设置:

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

我忘记了创建一个sa登录帐户,所以我记得几周前就在寻找创建它的方法;以前,我使用 Windows 身份验证登录(例如使用 SQL Server Management Studio)。我按照/sf/answers/264721621/创建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()
Run Code Online (Sandbox Code Playgroud)

我对你的问题的猜测是你应该在连接参数中使用原始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
Run Code Online (Sandbox Code Playgroud)

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

希望有帮助。