web-dev-qa-db-ja.com

pyodbcでMS SQLに接続できません

単純なタスクを達成するために何時間も費やしました。 Windowsで実行するために使用したpythonコードがあり、Windowsサーバー2008のMS SQL dbにアクセスします。ubuntuサーバーをセットアップし、このサーバーでこのスクリプトを実行します。 pyodbc、freetds、その他のパッケージをインストールした後、DBに接続できません。私が使用していたWindows接続文字列は次のとおりです。

connectionString='DRIVER={SQL Server};SERVER=IP;DATABASE=Market;UID=usr;PWD=psw

よく調べた結果、3つの接続ファイルodbc.ini odbcinst.iniとfreetds.confになり、それぞれ次のようになります。

odbc.ini:

[sqlserverdatasource]ドライバー= FreeTDS説明= FreeTDSトレースを介したODBC接続=サーバー名なし= sqlserverデータベース= Market;

odbcinst.ini

[FreeTDS]説明= TDSドライバー(Sybase/MS SQL)ドライバー= /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse = FileUsage = 1

freetds.conf

[sqlserver]ホスト= 10.23.11.10;ポート= 1433; tdsバージョン= 5.0

今、私は次の接続をテストしようとしています

tsql -S sqlserver

しかし、私は次のエラーが表示されます

エラー20017(重大度9):サーバーOSエラー115からの予期しないEOF、「操作が進行中です」エラー20002(重大度9):Adaptive Serverの接続に失敗しました

動作させるのに数分かかると思いましたが、何時間も無駄にしました。どんな助けも大歓迎です。ありがとうございました。

2
Pedro Braz

LinuxマシンからSQL Serverに接続しようとしている場合は、このリンクに従うことを強くお勧めします https://Azure.Microsoft.com/en-us/documentation/articles/sql-database-develop-python- simple-ubuntu-linux /

これは、FreeTDSを使用してSQL Serverに接続する別のpythonドライバーpymssqlを使用します。これが役立つかどうか教えてください。

ベスト、
を満たす

1
meet-bhagdev

最近、SQL Server ODBCドライバーを開発し、Python 3.3上のpyODBC 3.0.7でテストし、接続に成功しました。すべてうまくいきました。

最新のpyODBCドライバーをダウンロードしてみてください https://github.com/mkleehammer/pyodbc およびこれ SQL Server ODBC driver
ドキュメントには接続文字列の例があります。使用できます。

1
Jordan Sanders

私は定期的にpythonを使用してDBに接続します。私の接続文字列は次のとおりです。

ConnectionString = 'DSN = MyDSN'

DSNはData source Nameの略で、その詳細は使用する形式でodbc.iniファイルに保存されます。

[MyDSN]

ドライバー= FreeTDS

説明= FreeTDS経由のODBC接続

トレース=いいえ

サーバー名= sqlserver

データベース=市場

USER = DBuser

パスワード= yourpwd

0