Cassandra Nodetool URISyntaxException:“索引 7 处的 IPv6 地址格式错误”

Flo*_*ian 18 cassandra nodetool

Cassandra nodetool 更新 OpenJDK 后抛出错误

nodetool status
nodetool: Failed to connect to '127.0.0.1:7199' - URISyntaxException: 'Malformed IPv6 address at index 7: rmi://[127.0.0.1]:7199'.
Run Code Online (Sandbox Code Playgroud)

这也会影响当前官方 Docker-Hub 镜像https://hub.docker.com/_/cassandra版本 3.11.12

我该如何修复这个错误?

Flo*_*ian 26

最新的 jdk 更新中似乎存在“改进的”IPv6 地址解析问题。
解决方法是使用 localhost 的 IPv6 表示法

nodetool -h ::FFFF:127.0.0.1 status
Run Code Online (Sandbox Code Playgroud)

  • 它似乎也会影响为主机投入的任何价值。解析为 IPv4 地址的主机名,而不仅仅是 localhost。将其添加到您的nodetool命令中,它应该回退到以前的JDK行为:“-Dcom.sun.jndi.rmiURLParsing=legacy” (2认同)

Waw*_*ski 14

您可以升级到 Apache Cassandra 3.11.13 或使用以下命令:

nodetool -Dcom.sun.jndi.rmiURLParsing=legacy status

另一种方法是将其添加-Dcom.sun.jndi.rmiURLParsing=legacy到 JAVA_TOOL_OPTIONS 环境变量中。