擅长:python、mysql、java
<p>我的设置:</p>
<ul>
<li>Microsoft Windows XP SP3。</li>
<li>Microsoft SQL Server 2008(不是R2)。</li>
<li>CPython公司2.7.4。</li>
<li>pymssql 2.0.0(与<code>easy_install</code>,IIRC一起安装)。</li>
</ul>
<p>我忘了创建一个<code>sa</code>登录帐户,所以我记得几周前,我在用Windows身份验证登录(例如使用SQL Server Management Studio)。我跟随<a href="https://stackoverflow.com/a/3781737">https://stackoverflow.com/a/3781737</a>创建<code>sa</code>用户帐户。</p>
<p>在中间步骤之后,我启动了Python。</p>
<pre><code>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()
</code></pre>
<p>我对您的问题的猜测是,您应该在连接参数中使用<em>raw</em>字符串——特别是<code>host</code>参数,它接受一个反斜杠。</p>
<p>我也在CentOS 5.8 64位机(PymSQL 1.0.2,freetds 0.91)上尝试过。为此,我还创建了一个<code>$HOME/.freetds.conf</code>文件,其内容如下</p>
<pre><code>[global]
tds version = 10.0
[MACHINE]
host = 192.168.1.2
port =1433
tds version = 10.0
encryption = request
</code></pre>
<p>我忘了从哪里选择该文件的配置示例。</p>
<p>希望能有所帮助。</p>