2016-05-05 11 views
3

私はDebian 8 Google CloudマシンをMicrosoft SQL 2012データベースに接続するために2日間試しています。私はデータベースが大丈夫だと知っています。なぜなら、私はWindowsでこれをやっても問題ないからです。今、私はPythonで書かれたウェブサイトコードをWindowsからDebianに移行しようとしていますが、ウェブサイト全体のデータベースにはアクセスできません。Debian 8のFreeTDSでMS SQL 2012データベースに接続できません

もちろん、私はlotを検索しています。頻繁に起こるように、私は矛盾した情報を見つけました。そして、それが "正しい"ものであると言う各ガイドは私を失敗させました。すべてのベストは、 FreeTDS email list ではないか、少なくとも、新規加入者を自動拒否していることです。

私が言ったように、私はGCloudサーバー上のDebian 8です。 SCPは認証キーの問題のために動作していないので、私はシェルへのアクセスのみを持ち、ホームディレクトリとの間でしかコピーできません。私はUnixODBC、tdsodbc、およびfreetdsをインストールしました。さらに、人々が提案したいくつかのパッケージをインストールしました。これはすべてsudo apt-getで、ソースからではなく、どのWebサイトからも直接ではありませんでした。

私のファイルは/etcではありません。/etc/freetdsです。私はまた、​​が必要だと言ういくつかのガイドを見つけました。 "。"宛先ファイル名の先頭に。私も/etc/freetds/odbc.iniを持っています。私のDSNを定義しています。 freetds.confでは、データベースエントリを定義し、odbc.iniオプションの "Databasename"は、セクション名と同じ値に設定されます(freetds.conf)。私のドライバは/etc/odbcinst.iniで定義されています(いいえ、私は/ etcにあるのは分かりませんが、その他は/etc/freetdsです)。私は3つのファイルを貼り付けました。ここで少し短くするために、最初のコメントを削除しました。コメントは実際のファイルにそのまま残っています。

セットアップラインは他にもいくつかありますが、 one post I found といっても、それ以外のいくつかの行がないとうまくいきます。

ここで楽しい部分があります:tsqlは完全に動作します。私がtsql -S DBName -U usernameを実行すると接続しますが、同じエラーが発生するたびにisqlが失敗します。私はすべてで定義されていないデータベースの名前isqlを与える場合、それは常に

[IM002][unixodbc][driver manager] No data source name found, and no default driver specified. 
[ISQLERROR]: Could not SQLConnect. 

だ、私は正確に同じエラーを取得します。例えば、私は、これは何かが、それは必要なすべてのconfiguration/iniのファイルを見つけていないことを私に示唆

isql -v testabc 

IM002エラーを取得したいです。しかし、tsql worksisql(もちろん、私のPythonスクリプト)は動作しません。私はDebianを初め、このDebianマシンへのSSHアクセスしか持っていないので、これを簡単にするためにGUIツールを使うことはできません。私はBashとVIMで合理的に快適です、私はちょうどどのパッケージがどのファイルを探しているのかわかりません。私はまた、物事を働かせるために取っておくか、または取り戻すべきオプションを知っていません。

+0

私はそれを持っていると思います。気まぐれに、私はsudo cp /etc/freetds/odbc.ini /etc/odbc.iniを試しました。私がそれをやろうとすると、isqlは機能し、私のPythonスクリプトは機能しました。ですから、私の投稿はもっと参考になりますが、Debian 8システムを使用している場合は、/ etcにodbc.iniを入れてください。たぶん、他のシステムも、私は知らない。 – AH16

答えて

1

この機能を利用するには、私の最初の記事に詳述されている設定が実際にうまくいきます。唯一の問題は、odbc.iniが間違った場所にあることです。
sudo cp /etc/freetds/odbc.ini /etc/odbc.ini トリックを行います。または、最初に/etcodbc.ini(作成する必要があります)を入れてください。明らかにfreetds.confのみが/etc/freetdsに属しています。

関連する問題