単純なタスクを達成するために何時間も費やしました。 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の接続に失敗しました
動作させるのに数分かかると思いましたが、何時間も無駄にしました。どんな助けも大歓迎です。ありがとうございました。
LinuxマシンからSQL Serverに接続しようとしている場合は、このリンクに従うことを強くお勧めします https://Azure.Microsoft.com/en-us/documentation/articles/sql-database-develop-python- simple-ubuntu-linux /
これは、FreeTDSを使用してSQL Serverに接続する別のpythonドライバーpymssqlを使用します。これが役立つかどうか教えてください。
ベスト、
を満たす
最近、SQL Server ODBCドライバーを開発し、Python 3.3上のpyODBC 3.0.7でテストし、接続に成功しました。すべてうまくいきました。
最新のpyODBCドライバーをダウンロードしてみてください https://github.com/mkleehammer/pyodbc およびこれ SQL Server ODBC driver
ドキュメントには接続文字列の例があります。使用できます。
私は定期的にpythonを使用してDBに接続します。私の接続文字列は次のとおりです。
ConnectionString = 'DSN = MyDSN'
DSNはData source Name
の略で、その詳細は使用する形式でodbc.ini
ファイルに保存されます。
[MyDSN]
ドライバー= FreeTDS
説明= FreeTDS経由のODBC接続
トレース=いいえ
サーバー名= sqlserver
データベース=市場
USER = DBuser
パスワード= yourpwd