Informixdb 多个连接
Informixdb multiple connections
我正在尝试使用 Informix 创建多个连接。这里的问题是我所有的服务器和我的数据库都有相同的名称,所以当我不能同时连接到它们时因为我读到这个名称应该是唯一的!
现在我正在尝试使用命令:
os.putenv('INFORMIXSQLHOSTS','/home/informix/etc/sqlhosts1')
所以我可以使用多个 sqlhosts 文件,但这不起作用。另外,我读到这是一种不好的做法,所以我正在寻找正确的方法。
我有 4 个服务器,名称为:
cms_net
数据库名称也是:
cms
都在不同的 IP 服务器中。
我希望有人能帮助我以正确的方式连接到这些!
您可以尝试覆盖连接字符串中的主机。
我在名为 "irk"
的机器中定义了一个 "irk1210"
informix@irk:/usr3/products/12.10$ grep irk1210 $INFORMIXSQLHOSTS
irk1210shm onipcshm irk irk1210shm
irk1210 onsoctcp 9.20.143.225 3046
dr_irk1210 drsoctcp irk 3047
来自 Python(我猜这就是您正在使用的)我可以仅使用 "irk1210" 作为服务器名称进行连接(信息将从 sqlhosts 文件中选取)
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210',user='informix',password='ximrofni')
>>> print conn
<_informixdb.Connection object at 0x9d287a0>
>>>
或指定服务器的全部信息(server/protocol/host/service)
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210|onsoctcp|9.20.143.225|3046',user='informix',password='ximrofni')
>>> print conn
<_informixdb.Connection object at 0x93c37a0>
>>>
执行后面的操作后,您可以选择为服务器指定不同的主机 (ip):
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210|onsoctcp|10.1.1.10|3046',user='informix',password='ximrofni')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_informixdb.OperationalError: SQLCODE -908 in CONNECT:
08004: Client unable to establish connection
IX000: ISAM error: record is locked.
>>>
我得到一个 -908 错误,因为我在 10.1.1.10 中没有服务器,但这有点证明驱动程序正在尝试连接到一个不同于 SQLHOSTS 中为 irk1210 服务器指定的 ip
我正在尝试使用 Informix 创建多个连接。这里的问题是我所有的服务器和我的数据库都有相同的名称,所以当我不能同时连接到它们时因为我读到这个名称应该是唯一的!
现在我正在尝试使用命令:
os.putenv('INFORMIXSQLHOSTS','/home/informix/etc/sqlhosts1')
所以我可以使用多个 sqlhosts 文件,但这不起作用。另外,我读到这是一种不好的做法,所以我正在寻找正确的方法。
我有 4 个服务器,名称为:
cms_net
数据库名称也是:
cms
都在不同的 IP 服务器中。
我希望有人能帮助我以正确的方式连接到这些!
您可以尝试覆盖连接字符串中的主机。
我在名为 "irk"
的机器中定义了一个 "irk1210"informix@irk:/usr3/products/12.10$ grep irk1210 $INFORMIXSQLHOSTS
irk1210shm onipcshm irk irk1210shm
irk1210 onsoctcp 9.20.143.225 3046
dr_irk1210 drsoctcp irk 3047
来自 Python(我猜这就是您正在使用的)我可以仅使用 "irk1210" 作为服务器名称进行连接(信息将从 sqlhosts 文件中选取)
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210',user='informix',password='ximrofni')
>>> print conn
<_informixdb.Connection object at 0x9d287a0>
>>>
或指定服务器的全部信息(server/protocol/host/service)
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210|onsoctcp|9.20.143.225|3046',user='informix',password='ximrofni')
>>> print conn
<_informixdb.Connection object at 0x93c37a0>
>>>
执行后面的操作后,您可以选择为服务器指定不同的主机 (ip):
informix@irk:/usr3/products/12.10$ python
Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import informixdb
>>> conn = informixdb.connect('sysmaster@irk1210|onsoctcp|10.1.1.10|3046',user='informix',password='ximrofni')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_informixdb.OperationalError: SQLCODE -908 in CONNECT:
08004: Client unable to establish connection
IX000: ISAM error: record is locked.
>>>
我得到一个 -908 错误,因为我在 10.1.1.10 中没有服务器,但这有点证明驱动程序正在尝试连接到一个不同于 SQLHOSTS 中为 irk1210 服务器指定的 ip