出现原因是由于你使用的jdk已是8以上,而PermSize是Java虚拟机的一个参数,用于设置永久代的大小。但记得从Java 8开始,永久代被元空间(Metaspace)取代了,所以PermSize和MaxPermSize在Java 8及更高版本中已经不再有效了。如果用户使用的是Java 8或更新的版本,启动时指定PermSize就会导致这个错误
1. 修改启动脚本
假设你使用的是默认的启动脚本(例如,bin/canal.sh
),你需要找到并修改这个脚本中的JVM启动参数。
对于Java 8及更高版本:
打开你的canal.sh
文件,找到类似于这样的行:
-Xms128m -Xmx512m -XX:PermSize=128m
将其修改为:
-Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m
然后查询运行canal