12

我正在尝试运行这个程序

conn = pymssql.connect(host='localhost',  user='notsa', password='notsayly', database='TallicaTweets')

但我收到以下错误:

Traceback (most recent call last):
  File "harvester_of_tweets.py", line 11, in <module>
    conn = pymssql.connect(host='localhost',  user='username', password='password!', database='Database')
  File "/usr/local/lib/python2.7/dist-packages/pymssql.py", line 607, in connect
    raise OperationalError, e[0]
pymssql.OperationalError: DB-Lib error message 20009, severity 9:
Unable to connect: Adaptive Server is unavailable or does not exist
Net-Lib error during Connection refused Error 111 - Connection refused

搜索 Google 并没有真正的帮助,而且那里的一些 tuts 也不是很彻底。我应该将我的凭据添加到特定的配置文件中吗?以及如何在 mssql 中创建凭据?(我在psql中做过这些事情,但对mssql不熟悉。

我使用的是 Ubuntu 13.04,我的 python 版本是 2.7。

创建用户登录后,我收到此错误:

Traceback (most recent call last):
  File "harvester_of_tweets.py", line 11, in <module>
    conn = pymssql.connect(host='localhost',  user='tweet', password='1234', database='tweet_db')
  File "/usr/local/lib/python2.7/dist-packages/pymssql.py", line 607, in connect
    raise OperationalError, e[0]
pymssql.OperationalError: DB-Lib error message 20009, severity 9:
Unable to connect: Adaptive Server is unavailable or does not exist
Net-Lib error during Connection refused Error 111 - Connection refused
4

6 回答 6

14

我遇到了同样的问题。事实证明,我没有为我的本地 SQL 服务器打开 TCP/IP 访问。

做个快速测试看看是否是这个原因造成的,你可以尝试用同样的代码连接远程服务器。如果它有效,则意味着您的本地服务器有问题。

因此,只需在 SQL Server 配置管理器中打开对 127.0.0.1:1433 的访问即可。

脚步:

  1. 开始 -> 所有程序 -> Microsoft SQL Server 20XX -> 配置工具 -> SQL Server 配置管理器
  2. SQL Server 网络配置 -> MSSQLSERVER 的协议
  3. TCP/IP -> 属性 -> IP 地址。找到 127.0.0.1 并将“已启用”更改为“是”。如果需要,您可以为所有 IP 执行此操作。
于 2015-05-08T08:56:23.817 回答
4

我通过使用不同的库解决了我的问题。我用pyodbc

import pyodbc
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=SERVERNAME;DATABASE=testdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
rows = cursor.fetchall()
for row in rows:
    print row.user_id, row.user_name
于 2016-08-13T17:48:39.997 回答
4
  1. 检查已安装的 python 版本(32 位或 64 位)。

  2. 根据您的操作系统架构从下面下载 freetds。
    https://github.com/ramiro/freetds/releases

  3. 将其解压缩到C:\驱动器(如c:\freetds

  4. 将 Bin(从 c:\freetds\bin目录)添加到环境变量(两者)。

  5. 确保端口 1433 已打开并且在 SQL 配置中启用了 TCP/IP。

  6. 重新启动你的电脑,一切都应该没问题。

于 2017-11-27T18:24:31.100 回答
0

我有类似的问题。pymssql.OperationalError:DB-Lib 错误消息 20009,....

尝试以下步骤:

  1. 不要同时启动 MSSQLSERVER 和 SQLEXPRESS。停止你不需要的那个。
  2. 确保启动了正确的 SQL Server 服务。
  3. 确保启动了正确的 SQL Server 代理。
  4. 使用服务器上的 Microsoft SQL Server Management Studio 检查用户名和密码是否正确。

希望这可以帮助。

于 2014-09-11T11:21:14.463 回答
0

对我来说,当我收到那个错误时,它只缺少连接参数中的端口。

于 2022-01-05T03:36:11.903 回答
-1

您应该在 MS SQL 中创建一个,并将其与相关数据库中login的特定关联。user

有关用户和登录的介绍,请参见此处:http: //blogs.msdn.com/b/lcris/archive/2007/03/23/basic-sql-server-security-concepts-logins-users-and-principals。 aspx

于 2013-10-13T18:05:46.060 回答