尝试使用 JDBC 连接到 IBM 的 Informix docker 版本

Posted

技术标签:

【中文标题】尝试使用 JDBC 连接到 IBM 的 Informix docker 版本【英文标题】:Trying to connect to IBM's Informix docker edition with JDBC 【发布时间】:2021-05-15 20:33:50 【问题描述】:

我正在尝试为 Informix 编写一些 Java 测试。我让 docker 从这里运行:

https://hub.docker.com/r/ibmcom/informix-developer-database/

我找不到任何用于连接它的 JDBC 连接字符串示例。

我用它来运行它: docker run -it --name ifx -h ifx --privileged -p 9089088 -p 9089:9089 -p 27017:27017 -p 27018:27018 -p 27883:27883 -e LICENSE =接受 ibmcom/informix-developer-database:最新

我正在使用默认用户名和密码尝试这个 jdbc:informix-sqli://localhost:9088/sysmaster:INFORMIXSERVER=ifx,但我得到“INFORMIXSERVER 与 DBSERVERNAME 或 DBSERVERALIASES 都不匹配。”

我也尝试过使用 INFORMIXSERVER=dev - 同样的错误。

有人知道这个 docker 镜像的 jdbc url 是什么吗?

【问题讨论】:

文档似乎是here。 当你启动它时,你从你的 docker 容器中暴露了什么端口?另外,你在什么操作系统上运行它? 我使用这个命令来启动它 docker run -it --name ifx -h ifx --privileged -p 9089088 -p 9089:9089 -p 27017:27017 -p 27018:27018 -p 27883 :27883 -e LICENSE=accept ibmcom/informix-developer-database:latest 在 Mac OS 上运行 docker @ElliottFrisch 是的,但他们不提供任何 JDBC url。 【参考方案1】:

INFORMIXSERVER=informix 不是必需的,除非您尝试使用 JDBC 从 SQLHOST 文件中查找内容。只要您有 host:post,您就可以完全省略 INFORMIXSERVER 并使用 4.10.JC6 或更高版本的 JDBC 驱动程序。

这样就省去了知道每个 Informix 服务器名称的麻烦

【讨论】:

【参考方案2】:

您可以使用以下 JDBC URL 字符串:

jdbc:informix-sqli://localhost:9088/sysmaster:INFORMIXSERVER=informix

您可以检查用于INFORMIXSERVER 参数的正确值,如下所示:

    按如下方式连接到您的 Docker 实例:
docker exec -it ifx bash
    在命令行查看sqlhosts文件的内容:
cat $INFORMIXDIR/etc/sqlhosts

您将看到与此类似的内容(假设安装了 vanilla Docker):

############################################################
### DO NOT MODIFY THIS COMMENT SECTION
### HOST NAME = 6b4943a932ab
############################################################
informix        onsoctcp        *6b4943a932ab         9088
informix_dr     drsoctcp        *6b4943a932ab         9089

端口 9088 的条目名称为 informix

【讨论】:

还要注意INFORMIXSERVER=informix 不是必需的,除非您尝试使用 JDBC 从 SQLHOST 文件中查找内容。只要您有 host:post,您就可以完全省略 INFORMIXSERVER 并使用 4.10.JC6 或更高版本的 JDBC 驱动程序

以上是关于尝试使用 JDBC 连接到 IBM 的 Informix docker 版本的主要内容,如果未能解决你的问题,请参考以下文章

通过SSL将IBM DB2 JDBC连接到编目数据库

无法从R Studio JDBC驱动程序连接到DB2服务器

从 Java 连接到 DB2

使用Python 3.6.2连接到IBM Bluemix上的MongoDB

DSX“帮助:找不到 IBM dashDB/DB2 的 JDBC 驱动程序。”

如何将 JDBC 连接到 tns oracle