我想用来ibm_db_django
连接到一个 DB2 数据库。
该数据库在 Windows 7 x64 系统上运行。我也安装ibm_db
和ibm_db_django
在同一个系统上。我在这台计算机上开发了我的应用程序,一切正常。
现在我想将 django-project 部署到 debian 6 x64 系统。经过一番试用,我安装了IBM Data Server Client
(版本 9.5,Fix Pack 10)并添加了 32 位的 ODBC 驱动程序。在此之后,我能够安装ibm_db
和ibm_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 相同的路由器的虚拟机)。
有人有线索吗?