問題タブ [unixodbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP unixODBC Apache Segfault
コマンドラインからスクリプトを問題なく実行できます: php test.php と接続し、単純なクエリを返し、Oracle から切断します。私が実行すると:
接続し、クエリも実行できます。問題は、ブラウザからスクリプトを実行すると、素晴らしい 500 エラーと segfault がログ ファイルに記録されることです。現在、apache はデバッグ用にコンパイルされていません (これは面倒です)。デバッグでApacheを再インストールする必要がないようにしたいと思います。
私が使用しています: PHP:
アパッチ:
Oracle クライアント:
Linux カーネル:
unixODBC: unixODBC.x86_64 2.2.14-12.fc14 (yum から)
ブラウザで URL にアクセスすると apache/php が終了するため、php で高度なデバッグやログを実行することさえできません。
現在、実行できるかどうかを確認しようとしています:
当分の間、これを回避できるかどうかを確認します。必要に応じて、他にも喜んで共有します。
unixodbc - unixodbc および netezza ODBC ドライバーの問題 (未定義のシンボル: SSL_connect)
Netezza データベースに接続するように unixODBC をセットアップしようとしていますが、isql を使用して接続しようとすると、「Undefined symbol: SSL_connect」というメッセージが表示されます。
現在使用中: CentOS 5.5、unixODBC 2.3.0 (2.2.11 と同じ問題)。
私は次のことをしました:
- ODBC ドライバーに付属の README.txt に従って、LD_LIBRARY_PATH、ODBCINI、および NZ_INI_FILE_PATH を構成しました。
- ldd コマンドを使用し、libssl と libcrypto のシンボリック リンクを設定することで、すべてのライブラリが読み込まれるようになりました。
- /etc/ld.so.conf ファイルを更新して、netezza ドライバー パスが確実に読み込まれるようにしました。
- nm を使用して、SSL_connect シンボルがドライバーに含まれていることを確認しました。
このシンボルのファイルに対して dltest を実行すると、「ファイルが見つかりません」というエラーが報告されます。これは、isql -v を実行しようとすると通常発生するものですが、LD_DEBUG 環境変数を変更して追加のデバッグ情報を取得し、SSL_connect につながりました。 .
(参考までに、export LD_DEBUG=files isql sospos
私が使用したものです。)
何かご意見は?すべてがそこにあるように見えるので、これは私の頭を悩ませていますが、まだ機能していません。最悪の部分は、Ubuntu 10.10 か月前に同じことをセットアップし、問題なく動作したことです。
アップデート:
まず、libnzodbc.so ファイルの ldd は問題ないようです。すべての依存関係が満たされました。
第 2 に、欠落していたファイルで確認できたのは、en_US ロケールの libc.mo ファイルだけだったので、en_GB ロケールへのシンボリック リンクを設定しました。残念ながら、探している他のすべてのライブラリが見つかったように見えても、同じエラーがスローされます。strace の出力に他に探すべきものはありますか?
更新 2:
私が現在見ている問題は、isql が ISO8859-1.so で gconv_end を探しているということですが、そのシンボルは存在しません。興味深いことに、シンボルは私の Ubuntu サーバー VM に存在せず、isql は正常に動作します。上記で指定した unixODBC の両方のバージョンには、同じ問題があります。
更新 3:
OK -d オプションと -r オプションを指定して ldd を再実行しました。はい、まだ問題があります。すべての SSL* 記号が欠落しています。これは、間違ったファイルへのシンボリック リンクを作成したことを意味していると思います。SSL_connect が含まれている ssl ライブラリ ファイルを知っている人はいますか?
php - H2 データベースへの PHP ODBC 接続
これで私を助けてくれませんか。
PHP OBDC を使用して H2 データベースに接続しようとすると、「SQL エラー: [unixODBC]Unknown authentication type, SQL state 28000 in SQLConnect」というエラー メッセージが表示されます。
以下を使用して接続します: $DSN = "Driver=PostgreSQL;Server=$Srv;Port=5435;Database=$DB;"; $CID = odbc_connect($DSN,$usr,$pwd);
接続文字列の認証タイプを解析するにはどうすればよいですか。
ありがとう。
python - unixODBCエラーIM001
単純なクエリを実行しようとすると、次のエラーが発生します。何が変わったのかわからない。
sqlalchemy(Elixir)クラスの例を次に示します。
データベース接続は正常であり、クラスは正常に構築されdir(Song)
ます。これは、すべての正しい列を実行して表示できるためです。ただし、単純なクエリは機能しません。
そのクラスに対するクエリと結果の出力は次のとおりです。
セットアップの詳細:
- 32ビットArchLinux
- Python 2.7.2
- sqlalchemy 0.7.2
- エリクサー0.7.1
- FreeTDS 0.82-5
- unixodbc 2.3.0-1
/etc/odbcinst.ini:
/etc/odbc.ini:
ruby-on-rails-3 - Ruby on Rails 用に Redhat を SQL Server 2008 に接続する
Redhat Linux を Microsoft SQL Server 2008 に接続しようとしています。既に Windows (テスト マシン) でのセットアップに問題がありましたが、本番環境にある Linux マシンにデプロイする必要があります。
だから私はunixODBCとFreeTDSをインストールしました(多くの努力を払って、正しくインストールされたかどうかさえわかりません:S)、その結果、次の3つのファイルがあります/usr/local/etc
:
次に、ファイルを編集し、freetds.conf
これを追加しました。
ポート番号は SQL Server 2008 で動的に設定されているため、DBA から確認する必要がありました。
私のodbcinst.ini
ファイルは次のようになります。
私のodbc.ini
ファイルは次のようになります。
だから今、接続してみました
tsql -S sqlServer -U test -P test
、ただし、次のエラーのみが表示されます。
isql を使用して を実行しようとするとisql -v sqlServer test test
、次のエラーが発生しました。
私が間違っている可能性のあるアイデアはありますか?
ssh - 3 台目のマシンへの ssh トンネル経由の ODBC
職場には、内部ネットワークの外部から接続できない SqlServer データベースがあります。リモートで作業したい場合は、ネットワーク上の他のいくつかのサーバーに SSH で接続し、X 転送を介して作業して、開発アプリケーションがデータベースにアクセスできるようにします。
これは、IDE での遅延などの明らかな理由で煩わしく、データベース接続を自分のマシンに戻す方法を知りたいと思っています。これは可能であるように思われますが、間に中間ステップが必要なため、どうすればよいかわかりません。 この質問は私がやりたいことと似ていますが、正しく理解している場合にのみ、db サーバーに直接アクセスする場合にのみ機能します。
アプリケーションが既に使用しているドライバーであるため、特に ODBC について質問しています。より一般的な解決策があれば、もちろんそれを受け入れます。
私がやりたいことは
python - 代替の unixODBC インストールの使用
私は組織全体の中央にマウントされたドライブに unixODBC がインストールされている環境で作業していますが、私たち (実際の開発者) はそこにドライバーやデータソースをインストールすることを許可されていません。それはすべて後ろ向きですが、私はそれと一緒に暮らす必要があります。
現在、この UNIX 環境から mssql 2005 サーバーに接続する python アプリを構築しようとしているので、明らかに SQL ドライバーが必要です!
完全に制御できるドライブの一部に unixODBC を再インストールすることで、プリインストールされた unixODBC にアクセスできないことを回避しました。freeTDS をインストールし、すべてを構成して、isql を使用してサーバーに正常に接続できるようにしました。
唯一の問題は、python プログラム (pyodbc を使用している) で次のような行を実行するときです。
私は得る
これは、pyodbc がまだ元の unixODBC インストールを探しており、ローカルの unixODBC インストールを探しているためだと思います。だから私は疑問に思っていました:
メイン ドライブにインストールされているものではなく、ローカルの unixODBC インストールを検索するようにスクリプトを構成するにはどうすればよいですか
sql-server - ODBC経由でSQL Server DBのデータベーススキーマを照会していますか?
データベース間で動作する ODBC を使用してデータベース スキーマを取得する一般的な方法はありますか?
そうでない場合、データベース サーバーが MS SQL Server の場合、これを行う最も簡単な方法は何ですか?
Linux から unixodbc を使用しています。