通过perl在sqlhosts中实现Informix数据库服务器连接

通过perl在sqlhosts中实现Informix数据库服务器连接,perl,informix,Perl,Informix,我想在sqlhosts中添加一个新的Informix服务器条目,但我不太确定它将如何影响现有的连接 当前sqlhosts仅包含一个服务器条目 dbserver onsoctcp 111.111.111.20 7101 数据库句柄是在现有perl模块中创建的(db是服务器上的数据库) 请注意,“dbserver”从未被引用 我想向sqlhosts添加一个测试服务器。像这样的 dbserver onsoctcp 111.111.111.20

我想在sqlhosts中添加一个新的Informix服务器条目,但我不太确定它将如何影响现有的连接

当前sqlhosts仅包含一个服务器条目

 dbserver       onsoctcp    111.111.111.20      7101
数据库句柄是在现有perl模块中创建的(db是服务器上的数据库)

请注意,“dbserver”从未被引用

我想向sqlhosts添加一个测试服务器。像这样的

 dbserver       onsoctcp    111.111.111.20      7101
 dbserver_test  onsoctcp    111.111.111.21      7101
在sqlhosts中只有一个条目,一切都很正常。但我的连接从未引用sqlhosts中的服务器名称

所以,我的问题

Informix是否只是尝试使用唯一可用的

在sqlhosts中添加第二个服务器条目会迫使我在连接字符串中包含服务器名称吗


谢谢

可能是权限问题?从文件中:

请注意,您可能还能够连接到其他数据库 由DBI->data\u源列出,使用其他符号标识 数据库例如,您可以连接到“dbase@server如果是“服务器” 出现在sqlhosts文件中,并且数据库“dbase”存在于 服务器和服务器已启动,您有权同时使用 服务器和服务器上的数据库等。而且,你可能不会 能够连接到列出的每个数据库(如果有) 至少未授予数据库的“连接”权限。然而, DBI->data_sources方法列出的数据库肯定存在, 尝试连接这些来源是合法的


Informix客户端使用环境变量解析主机和其他配置;检查
INFORMIXDIR
是否设置为安装Informix CSDK的路径(我假设是),并将
INFORMIXSERVER
设置为指向
sqlhosts
中的新条目。请参阅IBM知识库中的

或者,使用
db@server
数据源格式:

my $dbh = DBI->connect("DBI:Informix:db@server", "user", "password");

user/pass的授权都已经过验证,并且使用dbaccess和serverstudio可以正常工作。在创建dns和dbh.BINGO时,如果没有指定sqlhosts条目,Informix及其所有怪癖都会使用唯一的sqlhosts条目,这似乎很奇怪!有时我不喜欢ENV变量;)记录在案……我发现当
sqlhosts
中有两个相同的dbsever名称时,第一个就赢了。
my $dbh = DBI->connect("DBI:Informix:db@server", "user", "password");