【问题标题】:pymssql.OperationalError: DB-Lib error message 20009, severity 9pymssql.OperationalError:DB-Lib 错误消息 20009,严重性 9
【发布时间】:2013-10-21 07:28:28
【问题描述】:

我正在尝试运行此program

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

【问题讨论】:

    标签: python mysql sql sql-server sql-server-2008


    【解决方案1】:

    我遇到了同样的问题。原来我没有为我的本地 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 执行此操作。

    【讨论】:

    • 还检查端口是否为 pymssql 所期望的 1433,默认值似乎是随机的。 MSSQLSERVER 的协议 -> TCP/IP -> 属性 -> IP 地址 -> 默认端口
    【解决方案2】:

    我通过使用不同的库解决了我的问题。我用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
    

    【讨论】:

      【解决方案3】:
      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. 重启你的电脑,一切都会好起来的。

      【讨论】:

        【解决方案4】:

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

        尝试以下步骤:

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

        希望这会有所帮助。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          【解决方案6】:

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

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

          【讨论】:

          • 我在 localhost 中添加了一个带有密码的新用户,但我收到此错误:Traceback (most recent call last): File "harvester_of_tweets.py", line 11, in &lt;module&gt; 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
          猜你喜欢
          • 2023-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多