问题描述以及排查报错:
备注:
本问题出现在x86_64架构的服务器上面
排查问题一
安装完mongodb启动时报一下错误:
error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory
报错的大概意思是找不到共享库文件 libcrypto.so.10。
①在这里我通过查询问题有的教程提到可以通过设置软连接的方式来为./mongod提供依赖。
首先通过命令ldd /path/bin/mongod 来查看./mongod还需要哪些依赖
然后设置软连接:
通过"find / -name xxxxxxxx"查找对应依赖文件位置
设置软连接
ln -s /usr/lib/libcrypto.so.10 /lib64/libcrypto.so.10
ln -s /usr/lib/libssl.so.10 /lib64/libssl.so.10
这样/lib64文件夹里就有可执行的依赖libcrypto.so.10和libssl.so.10
②以上排查解决后启动mongodb服务再次报错报出以下错误:
./mongod: error while loading shared libraries: libcrypto.so.10: wrong ELF class: ELFCLASS32
查询到意思是说我的系统是64位的但是我用的软件是32位的。不知道意思对不对,反正结果都是无法执行。
③继续在网上找教程,终于找到下面这个教程。虽然不是很一样但还是完美解决问题,开心。
排查问题二
2.通过yum whatprovides libcrypto.so.10命令查看哪个包下有共享库文件
[root@iZ2ze21r4a1m7b1cmo6t0sZ lib64]# yum whatprovides libcrypto.so.10
compat-openssl10-1:1.0.2o-3.el8.i686 : Compatibility version of the OpenSSL library
Repo : @System
Matched from:
Provide : libcrypto.so.10
排查问题三
执行安装命令 yum -y install compat-openssl10-1:1.0.2o-3.el8.i686
再次执行启动mongodb命令还是报错
错误:./bin/mongod: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory
(剩下的步骤我也不知道为啥这么做,照抄教程做就成功了)
排查问题四
MongoDB4.2.0需要依赖openssl10相关资源,必须先在Linux中安装openssl10。
执行命令:yum install compat-openssl10 下载完后最后执行ldd mongod看到文件都已经存在
具体什么原因不是特别清楚
最有启动执行mongodb服务启动正常
如果离线情况下无法下载也可以直接上传共享库文件到/use/lib64目录下,此方法已经得到验证可以解决以上问题,需要此文件连接博主