3

pymssqlを使用して、WindowsServer2008で実行されているSQLServer2012データベースに接続しようとしています。

db = pymssql.connect(host='xxx',user='xxx',password='xxx',database='xxx')

ただし、次のエラーが発生します。

OperationalError:(20017、'DB-Libエラーメッセージ20017、重大度9:\nサーバーからの予期しないEOF\ nDB-Libエラーメッセージ20002、重大度9:\n適応型サーバー接続に失敗しました\n')

完全なエラーは次のとおりです。

Traceback (most recent call last):
  File "XXX.py", line 2, in <module>
    conn = pymssql.connect(host = 'XXX.com', user = 'xxx', password = 'xxx', database = 'xxx')
  File "pymssql.pyx", line 556, in pymssql.connect (pymssql.c:7990)
    raise OperationalError(e[0])
OperationalError: (20017, '\xa0\xff\xaf\x02\x90_\x8d\x02L\xd6\xa7\x02\xda\xad;DB-Lib error message 20017, severity 9:\nUnexpected EOF from the server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')

誰かが私が何が起こっているのか理解するのを手伝ってもらえますか?

4

2 に答える 2

5

完全な接続障害の可能性があると思います。「EOF」と表示されていることは知っていますが、そのようなエラーメッセージが誤解を招くことがあります。

スクリプトを実行している場所から最初にホストにpingを実行できるかどうかを確認します。

次に、使用しているポートでtcp接続を取得できるかどうかを確認します。

httpsでhttpポートに接続すると、http接続でEOFエラーが発生するという話を聞いたことがあります。それがここに当てはまるかどうかはわかりません。

これはグーグルで出てきました。それは役立つかもしれません:

http://sourceforge.net/projects/pymssql/forums/forum/124111/topic/1672338

上記のすべてが機能している場合は、ユーザー名とパスワードが正しいことを再確認します。おそらく、新しいユーザーを作成することさえあります。

最後に、クライアントライブラリとサーバーライブラリのバージョンに互換性があるかどうかを確認します。

これがお役に立てば幸いです。

于 2013-01-18T02:37:47.473 に答える
1

pymssqlfreetds正しく動作する必要があります。macOSで/usr/local/etc/freetds.conf、お好みのテキストエディタで開き、次の設定を更新します。

[global]
# TDS protocol version
# tds version = auto
tds version = 7.0

もう一度やり直して、エラーがなくなったかどうかを確認してください。

ここを参照してください。

于 2020-07-06T10:03:35.803 に答える