最近要上线一个新的系统,在新的平台上面搭建环境,需要用到 mongodb,但安装好mongodb,却遇到无法启动的情况。具体情况如下:
1、在虚拟服务器PVE(Proxmo Virtual Environment ,版本:7.4-17)上新增一个虚拟机;
2、虚拟机上面安装Ubuntu Server 22.04;
3、在虚拟机上面安装了mongodb,版本为6.0.12;
4、遇到的问题:mongodb无法启动,执行systemctl status mongod 的时候出现以下画面:

从上面的错误信息可以看出,错误的核心关键词是:“(code=dumped, signal=ILL)”、“mongod.service: Failed with result ‘core-dump’.”等等;
5、直接执行:sudo mongod 出现“Illegal instruction (core dumped)”提示:

问题原因:从MongoDB 5.0版本开始,MongoDB需要CPU支持avx指令集才能使用,否则只能使用老版本,而我安装的是6.0版本。默认情况下,PVE的CPU类别(kvm64),并不支持avx指令(经过测试,qemu64模式也不支持)。
解决方法:需要进入MongoDB所在的虚拟机,在关机状态下,进入“硬件”编辑页面,依次点击“处理器”——“编辑”按钮,把“类别”修改为“host”,然后点击“OK”保存退出(见下图)。保存后,重新启动虚拟机即可。
