2

リモート DB2 サーバーを使用して Linux 上で Web2py を実行する方法を知っている人はいますか?

私はpyodbcを使ってみましたが、それに関するドキュメントは非常に貧弱です

そのためのステップツーステップガイドが見つかりません。

私の設定ファイル:

odbcinst.ini:

[DB2]
Description     = DB2 Driver
Driver          = /opt/odbc_cli/clidriver/lib/libdb2.so
FileUsage       = 1
DontDLClose     = 1

odbc.ini

[test]
Description     = Test to DB2
Driver          = DB2

接続しようとしています:

>>> import pyodbc
>>> cnxn = pyodbc.connect('DRIVER={DB2};SERVER=172.16.1.35;DATABASE=log10;UID=db2admin;PWD=passs')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('08001', '[08001] [unixODBC][IBM][CLI Driver] SQL30081N  A communication error has been detected. Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location where the error was detected: "127.0.0.1".  Communication function detecting the error: "connect".  Protocol specific error code(s): "111", "*", "*".  SQLSTATE=08001\n (-30081) (SQLDriverConnect)')

私は何が欠けていますか?前もってありがとう
クリスチャン

4

2 に答える 2

1

これは典型的な通信問題のエラーです。接続する前に、接続を確認してください。

インスタンスポートとは何ですか? デフォルトは 50000 ですが、connect ステートメントで指定していません。

IPアドレス/ホスト名は何ですか? あなたの場合は 172.16.1.35 のようです

そのポートでtelnetを試してください

telnet 172.16.1.35 50000

接続を確立できる場合は、次のようなメッセージが表示されます。

Trying 172.16.1.35...
Connected to hostname.
Escape character is '^]'.

接続に問題がある場合は、

Trying 172.16.1.35...
telnet: Unable to connect to remote host: Connection refused

私の知る限り、プログラムを実行する前に、インスタンス ポートと接続設定を確認する必要があります。ファイアウォールに問題がある可能性があります。開いているポートを確認しましたか? サーバーで netstat -nato を試して、DB2 インスタンスがアクティブでポートをリッスンしているかどうかを確認します (現在不明)

于 2012-09-29T16:32:57.843 に答える
1

PHP を使用してリモートの DB2 サーバーに接続すると、/etc/odbc.ini ファイルは次のようになります。

[primary]
Description             = primary
Driver                  = iseries
System                  = xxx.xxx.xxx.xxx
UserID                  = xxxxxxxxxx
Password                = xxxxxxxxxx
Naming                  = 0
DefaultLibraries        = QGPL
Database                = XXXXXXXXXX
ConnectionType          = 0
CommitMode              = 2
ExtendedDynamic         = 0
DefaultPkgLibrary       = QGPL
DefaultPackage          = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression    = 1
LibraryView             = 0
AllowUnsupportedChar    = 0
ForceTranslation        = 0

/etc/odbcinst.ini ファイルは次のようになります。

[iseries]
Description     = iSeries Access for Linux ODBC Driver
Driver          = /usr/lib/libcwbodbc.so
Setup           = /usr/lib/libcwbodbcs.so
NOTE1           = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2           = the following Driver64/Setup64 keywords will provide that support.
Driver64        = /usr/lib/lib64/libcwbodbc.so
Setup64         = /usr/lib/lib64/libcwbodbcs.so
Threading       = 2
DontDLClose     = 1
UsageCount      = 1

構成ファイルにいくつかの情報が欠けていると思うので、これについて言及します。

于 2012-10-02T18:09:41.360 に答える