我有一台服务器,我知道上面Informix安装了一个,但我不知道是谁安装的。有封闭源客户端连接到该服务器,但除了用户名和密码之外,我无法获得任何相关信息。我不知道如何连接它,我不知道它的端口号和服务器名称是什么。我已经下载SQuirreL了JDBC Informix驱动程序。
如何在不知道端口和服务器名称的情况下连接到 JDBC Informix 服务器?
简而言之,您将需要端口号、服务器名称(以及数据库名称)才能连接到 Informix。
假设您有权限在安装 Informix 的机器上搜索,那么可能会在一些地方找到有关您的 Informix 服务器的详细信息。由于我没有看到有关在您的案例中安装 IDS (Informix) 的平台的任何详细信息,因此我将尝试提供适用于 Unix 和 Windows 平台的信息。但首先,一些背景:
设置与 Informix 的连接不需要太多参数。通常,您只需要:
听起来你需要找出最后三个。
Linux:
在 Linux 平台(以及 Windows,我相信)上,存在指向系统 Informix 安装位置的环境变量。其中最重要的是 %INFORMIXDIR%,它指向 Informix 安装的根目录。但是,很多时候,Informix 安装在/opt 中,因此请在那里尝试。
在典型安装的%INFORMIXDIR%/etc 中有一个名为sqlhosts的文件(它可能有您特定服务器实例的后缀,但它会以 sqlhosts 开头)。该文件中包含服务器名称,可能还有端口号。%INFORMIXDIR%/etc/sqlhosts 包含以下格式的纯文本数据:
ServerName NetType HostName Port/ServicesName
Run Code Online (Sandbox Code Playgroud)
第一个值是您要查找的服务器名称。第四个值 (Port/ServicesName) 要么是端口号,要么是/etc/services中引用该端口号的条目的名称。如果您没有看到端口号,请查看/etc/services。
例如,sqlhosts 可能包含如下内容:
myservername onsoctcp informix.mydomain.com 12345
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您的服务器名称是“myservername”,端口是 12345
或者,它可能如下所示:
myservername onsoctcp informix.mydomain.com informixservice
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您必须在/etc/services 中查找一行显示
informixservice 12345/tcp
Run Code Online (Sandbox Code Playgroud)
它会告诉你端口。
视窗
警告:我从未处理过安装在 Windows 上的 Informix 服务器,但是根据 IBM 文档,它在手头的任务方面似乎没有太大不同。
您寻找的信息包含在注册表项中,而不是文件%INFORMIXDIR/etc/sqlhosts
HKEY_LOCAL_MACHINE\SOFTWARE\INFORMIX\SQLHOSTS
Run Code Online (Sandbox Code Playgroud)
使用 regedit.exe 读取存储在此条目中的值。
如果在该注册表项中找不到端口号,则 Unix 的/etc/services文件的 Windows 等效文件是
C:\Windows\System32\drivers\etc\services
Run Code Online (Sandbox Code Playgroud)
用文本编辑器检查这个文件(记事本工作正常)。
希望这会有所帮助。祝你好运。