查找Informix数据库服务器

时间:2014-04-01 13:10:11

标签: informix

我有一台服务器,我知道它上面安装了Informix,但我不知道是谁安装了它。有一个封闭的源客户端连接到这个服务器,但除了用户名和密码,我无法得到任何关于它的信息。我不知道如何连接它,我不知道它的端口号和服务器名称是什么。我已经使用SQuirreL驱动程序下载了JDBC Informix

如何在不知道端口和服务器名称的情况下连接到JDBC Informix服务器?

4 个答案:

答案 0 :(得分:4)

简而言之,您需要端口号,服务器名称(以及数据库名称)才能连接到Informix。

假设您有权在安装Informix的盒子上搜索,有一些地方可能会找到有关您的Informix服务器的详细信息。由于我没有看到您的案例中安装了IDS(Informix)的平台的任何细节,我将尝试为Unix和Windows平台提供信息。但首先,有点背景知识:

设置与Informix的连接所需的参数不是太多。通常,您只需要:

  • 用户名
  • 密码
  • 服务器IP地址
  • 端口
  • 服务器名称(Informix实例的名称)
  • 数据库名称(要连接的[服务器名称]上的数据库名称)

听起来你需要找出最后三个。

<强> Linux的:

在Linux平台上(以及Windows,我相信),有一些环境变量可指向安装Informix系统的位置。其中最重要的是%INFORMIXDIR%,它指向Informix安装的根目录。但是很多时候,Informix安装在 / opt 中,所以试试吧。

典型安装中的%INFORMIXDIR%/ etc 是一个名为sqlhosts的文件(它可能有特定服务器实例的后缀,但它以sqlhosts开头) 。在此文件中是服务器名称,可能还有端口号。 %INFORMIXDIR%/ etc / sqlhosts包含以下格式的纯文本数据:

ServerName  NetType   HostName   Port/ServicesName

第一个值是您寻找的服务器名称。第四个值(Port / ServicesName)是端口号,或 / etc / services 中引用端口号的条目的名称。如果您没有看到端口号,请查看 / etc / services

例如,sqlhosts可能包含以下内容:

myservername   onsoctcp   informix.mydomain.com   12345

在这种情况下,您的服务器名称为&#34; myservername&#34;并且端口是12345

或者,它看起来像这样:

myservername   onsoctcp   informix.mydomain.com   informixservice

在这种情况下,你必须在 / etc / services 中查找一行

informixservice     12345/tcp

会告诉你这个端口。

<强>窗

警告:我从未处理过安装在Windows上的Informix服务器,但是根据IBM文档,它对于手头的任务看起来并没有什么不同。

而不是文件%INFORMIXDIR / etc / sqlhosts ,您寻找的信息包含在注册表项中

HKEY_LOCAL_MACHINE\SOFTWARE\INFORMIX\SQLHOSTS

使用regedit.exe读取此条目中存储的值。

如果您在该注册表项中找不到端口号,则Windows的等效于Unix的 / etc / services 文件

C:\Windows\System32\drivers\etc\services

使用文本编辑器检查此文件(记事本工作正常)。

希望这会有所帮助。祝你好运。

答案 1 :(得分:2)

*简答:您不能。*

这种情况涉及安全问题,因此,数据库不会在您的网络上“自我发布”,因为每个人都知道它存在。

如果你需要发现而不联系你的(你的?)环境的管理员,需要使用黑客技术(nmap实用程序已经在这里帮助)发现一些信息(IP,端口),你仍然缺少像这样的信息servername 协议,用户名和密码。

请注意,因为将记录Informix数据库侦听器的连接尝试。

现在,如果您可以访问数据库所在的服务器,那么您可以查找 sqlhosts 文件并获取所有这些。

另一个更合理的选择是向DBA / Admin询问配置,证明您希望访问的原因。

答案 2 :(得分:0)

您应该添加有关工作环境的更多信息:您的客户端是什么平台,您的服务器是什么平台,您是否可以访问服务器机器等。

如果您知道计算机中的某些内容连接到其他计算机,则可以使用netstat来发现它。如果你在Linux上工作,那么有-p选项显示每个连接的pid和应用程序名称。

首先,我们必须发现封闭源客户端的pid:

[root@test1 ~]# ps aux | grep my_app
root     12457  0.0  3.2 3342440 333336 ?      Sl   Mar06  21:01 java -cp /usr/local/bin/my_app...

现在,当我知道pid时,我可以使用netstat

[root@test1 ~]# netstat -tnp | grep 12457
tcp        0      0 ::ffff:169.0.1.71:55850     ::ffff:169.0.1.74:9088      ESTABLISHED 12457/java

从这个输出中我可以看到Infomix可能适用于169.0.1.74机器的9088端口。

在Windows上,您可以使用SysInternals中的TCPView查看类似内容。

在Windows上,您还可以检查ODBC数据源管理器(32位和64位)以查看是否正在使用Informix驱动程序。

答案 3 :(得分:0)

您可以在主机上找到服务器:

onstat -g dis 
即使服务器处于脱机状态(或可能已停用),

也会列出服务器。

服务器信息位于UNIX / Linux上的/ INFORMIXTMP中,我希望Windows中的C:\下有一个simlar文件夹。