emq4.3 安装后启动不了,解决办法

环境信息

  • EMQ X 版本:4.3.7
  • 操作系统及版本: centos 7
  • 其他

问题描述

官网下载的 emqx-centos7-4.3.7-amd64.zip 解压后启动报错

{application_start_failure,kernel,{{shutdown,{failed_to_start_child,
kernel_safe_sup,{on_load_function_failed,crypto}}}, ..}

官网也有说明 常见问题 ,它表示,EMQ X 依赖的 Erlang/OTP 中的 crypto 应用启动失败。

进入到 EMQ X 的安装目录(如果使用包管理工具安装 EMQ X,则应该进入与 EMQ X 的 lib 目录同级的位置)(ps:我的emq位置 :/usr/local/emqx)

[root@localhost emqx]# cd /usr/local/emqx

[root@localhost emqx]# ldd lib/crypto-*/priv/lib/crypto.so
	linux-vdso.so.1 =>  (0x00007ffcb9f32000)
	libcrypto.so.1.1 => not found
	libc.so.6 => /usr/lib64/libc.so.6 (0x00007f2063b29000)
	libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007f2063925000)
	libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007f2063709000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f2064601000)

其中有一个是显示的 ==not found==(PS:不管哪一个是not found,升级一下 openSSL就好了,我自己的和官网上说的不一致) 表明指定的 OPENSSL 版本的 .so 库未正确安装。

安装OPENSSL

1、下载与解压

cd ~
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -xzf openssl-1.1.1l.tar.gz

2、编译与安装

如果没有安装gcc可能会报错,可以直接使用yum安装一下gcc
yum install gcc
cd openssl-1.1.1l
./config
make
make install

3、尝试运行/usr/local/bin/openssl version应该会出现下面的这个错误:

/usr/local/bin/openssl version

报错
/usr/local/bin/openssl: error while loading shared libraries:
libcrypto.so.1.1: cannot open shared object file: No such file or directory

4、下面为相关的解决办法:

创建链接至libssl
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/

5、尝试查看openssl版本

/usr/local/bin/openssl version
OpenSSL 1.1.1l  24 Aug 2021

6、至此更新完成

启动EMQX 完美运行

[root@localhost emqx]# cd /usr/local/emqx

[root@localhost emqx]# ./bin/emqx start

1赞

:grinning:开始从3.2.9换到 4.3.7,折腾了2天启动不了,然后在论坛 ,官方文档找解决办法,结果都只说了个大概,后来自己摸索 ,才整理出这个文档。 如果能解决你的问题,希望make一下

:+1::+1:

1赞