0

我想用来ibm_db_django连接到一个 DB2 数据库。

该数据库在 Windows 7 x64 系统上运行。我也安装ibm_dbibm_db_django在同一个系统上。我在这台计算机上开发了我的应用程序,一切正常。

现在我想将 django-project 部署到 debian 6 x64 系统。经过一番试用,我安装了IBM Data Server Client(版本 9.5,Fix Pack 10)并添加了 32 位的 ODBC 驱动程序。在此之后,我能够安装ibm_dbibm_db_django. 现在我可以导入ibm_db(只要我以 db2inst1-user 身份登录)。

问题是我无法连接到我的 DB2 服务器:

db2inst1@debian:~$ sqllib/db2profile 
db2inst1@debian:~$ source /home/ai/project/ENV/bin/activate
(ENV)db2inst1@debian:~$ python /home/ai/project/sourcecode/manage.py shell
>>> from django.db import connections
>>> connections['db2'].cursor()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/ai/ENV/lib/python2.6/site-packages/django/db/backends/__init__.py", line 324, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "/home/ai/project/ENV/lib/python2.6/site-packages/ibm_db_django/base.py", line 191, in _cursor
    self.connection, cursor = self.databaseWrapper._cursor( None, kwargs )
  File "/home/ai/project/ENV/lib/python2.6/site-packages/ibm_db_django/pybase.py", line 74, in _cursor
    connection = Database.pconnect( **kwargs )
  File "/home/ai/project/ENV/lib/python2.6/site-packages/ibm_db_dbi.py", line 634, in pconnect
    raise _get_exception(inst)
OperationalError: ibm_db_dbi::OperationalError: [IBM][CLI Driver] SQL30081N  Kommunikationsfehler.  Verwendetes Kommunikationsprotokoll:"TCP/IP".  Verwendete Kommunikations-API: "SOCKETS".  Position, an der der Fehler erkannt wurde: "192.168.23.123".  \xc3\x9cbertragungsfunktion, die den Fehler festgestellt hat: "connect".  Protokollspezifische(r) Fehlercode(s): "110", "*", "*".  SQLSTATE=08001 SQLCODE=-30081

我这样定义数据库连接:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': '',
        'PORT': '',
    },
    'db2': {
        'ENGINE'     : 'ibm_db_django',
        'NAME'       : 'SAMPLE',
        'USER'       : 'username',
        'PASSWORD'   : 'password',
        'HOST'       : '192.168.23.123',
        'PORT'       : '50000',
        'PCONNECT'   :  True,      #Optional property, by default it is false
    }
}

与我的 Windows 7 开发机器上的运行版本相比,我只更改了主机。ping IP 确实有效并且连接应该是稳定的(debian-machine 是连接到与物理 windows-7-machine 相同的路由器的虚拟机)。

有人有线索吗?

4

0 回答 0