emqx启动失败,配置文件 232行错误

环境

  • EMQX 版本:5.8.8
  • 操作系统版本:linux

重现此问题的步骤

使用docker-compose 安装的。没有修改过配置文件

预期行为

正常启动

实际行为

产生报错,以下为日志内容
ERROR: call_hocon_failed: -s emqx_enterprise_schema -c /opt/emqx/etc/emqx.conf multi_get node.data_dir node.name node.cookie node.db_backend cluster.proto_dist node.dist_net_ticktime license.key
[error]: {scan_error,#{line => 232,reason => “illegal characters "/c"”,file => “/opt/emqx/etc/emqx.conf”}}

我看了下/emqx/etc/emqx.conf 的 232 行的内容为
node.crash_dump = log/crash.dump

以下是挂载卷
volumes:
- /usr/local/emqx/etc:/opt/emqx/etc # 配置文件
- /usr/local/emqx/data:/opt/emqx/data # 数据文件
- /usr/local/emqx/log:/opt/emqx/log # 日志文件
主机的这些文件地址是先创建了一个临时容器,然后再从临时容器内copy过来的

你自己加的配置文件吧,最新版本默认的 emqx.conf只有几行的,你这个有 232 行。。。

看配置你已经把 log 目录 也挂载出去了,那你的直接把他改到绝对路径的/opt/emqx/log/ 就行了(其实你不是需要去改了,直接把这一行删除掉,用默认值也是对的)

而且他不叫node.crash_dump 应该叫node.crash_dump_file

node.crash_dump_file = “/opt/emqx/log/crash.dump”

最后,就是千万不要用4 的配置文件来启动 5,那是完全启动不了的。

哎,我说的是最新版本的配置非常精简,如果你用的旧版本默认就是这么多配置的话,
建议你升级到新版本,

如果不能升级:
那你可以这样得到正确的emqx.conf

  1. 不要把 etc 挂载出来,
  2. docker 启动。
  3. docker cp etc/所有的文件 (包括emqx.conf) 来外面。
  4. 然后停了 docker 后把这个复制的文件放到挂载的 etc 目录 下。

使用新版的6.0.0就可以了谢谢。
那个 emqx.conf 文件我也是从容器直接cp出来的,总的有两千多行。下载的容器则是从github的5.8.8的docker-amd 下载然后载入进去的。

1 个赞