2017-04-24 125 views
1

我试图用Informix创建多个连接。这里的问题是我的所有服务器和我的数据库都有相同的名称,所以当我无法同时连接它们时,因为我读了这个名字应该是唯一的!Informixdb多个连接

现在,我尝试使用下面的命令:

os.putenv('INFORMIXSQLHOSTS','/home/informix/etc/sqlhosts1') 

这样我就可以使用多个sqlhosts文件,但这不起作用。另外,我读了这是一个糟糕的做法,所以我正在寻找正确的方法来做到这一点。

我有4个服务器名称为:

cms_net 

而且该数据库名是:

cms 

都在不同的IP服务器。

我希望有人可以帮助我以正确的方式连接到这些!

回答

1

您可以尝试覆盖连接字符串中的主机。

我在指定的机器定义的“irk1210”“激怒”

[email protected]:/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文件领取)

[email protected]:/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('[email protected]',user='informix',password='ximrofni') 
>>> print conn 
<_informixdb.Connection object at 0x9d287a0> 
>>> 

或指定服务器的全部信息(服务器/协议/主机/服务)

[email protected]:/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('[email protected]|onsoctcp|9.20.143.225|3046',user='informix',password='ximrofni') 
>>> print conn 
<_informixdb.Connection object at 0x93c37a0> 
>>> 

做好后给你指定的服务器不同的主机(IP)的选项:

[email protected]:/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('[email protected]|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服务器

+0

它可以指定一个不同的IP!谢谢!!你救了我的命! – Urkidy

+0

我认为这比sqlhosts env hack更好8) –

+0

是的!哈哈thx! – Urkidy