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

Trying to connect to IBM's Informix docker edition with JDBC

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

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

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

我用它来 运行 它:docker 运行 -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

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

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

有人知道 jdbc url 对这张 docker 图片来说是什么吗?

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

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

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

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

你会看到类似的东西(假设是普通 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 驱动程序。

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