/ / pymssql:データベースへの接続はときどき動作します - python、azure、pymssql

pymssql:データベースへの接続はときどき動作します - python、azure、pymssql

私はPythonのpymssqlを使ってAzure SQLサーバーに接続しようとしています。問題は、次のスクリプトは動作しますが、ときどき、このエラーが発生することがあります。

_mssql.MSSQLDatabaseException:(20002、b "DB-Libエラーメッセージ20002、重大度9:nAdaptiveサーバー接続が失敗しました")

これは私が使用しているスクリプトです:

import pymssql
conn = pymssql.connect(server="x", user="x", password="x", database="x")
cursor = conn.cursor()
cursor.execute("SELECT * FROM customers");
row = cursor.fetchone()
while row:
print (str(row[0]) + " " + str(row[1]) + " " + str(row[2]))
row = cursor.fetchone()

上記のスクリプトが時にはうまく動作する理由と、「Adaptive Serverの接続に失敗しました」というエラーが出てくるのを誰かが教えてくれれば、私は大きく助けになるでしょう。

回答:

回答№1は6

私はこれらの古いスレッドを見直しました tsqlからsql-azureに接続しようとすると、サーバーからの読み取りに失敗しました そして TDSプロトコルバージョン8.0とは何ですか、なぜそれを使用する必要がありますか?。 この問題は、間違ったバージョンのFreeTDSを使用することによって発生しているようです。

私はFreeTDS公式サイトのページでキーを見つけました http://www.freetds.org/faq.html#Does.FreeTDS.support.Microsoft.servers.

製品ごとにTDSプロトコルのバージョンの表があります http://www.freetds.org/userguide/choosingtdsprotocol.htm.

ここに画像の説明を入力

FreeTDSは下位互換性の理由からこのバージョンを7.1にエイリアスしますが、これは将来の互換性の懸念から避けてください。廃止されたバージョンについては、以下の注を参照してください。

Linux上でFreeTDSでpymssqlを使用している場合は、/ etc / freetds /のパスで設定ファイル "freetds.conf"をチェックする必要があると思います。

これは私のAzure SQL Serverの設定です。

# A typical Microsoft server
[egServer70]
host = <database_name>.database.windows.net
port = 1433
tds version = 7.3

freetdsツール "tsql"を使用してAzure SQLサーバーへの接続をテストして、tsql -H <database_name>.database.windows.net -U Username -D DatabaseName -p 1433 -P Password"

宜しくお願いします。