Ubuntu 20.04 LTS安装MongoDB 5.0执行mongod报Illegal instruction错误
MongoDB 5.0.x 启动报错Illegal instruction (core dumped) 排查与解决方案
问题根本原因
MongoDB 从5.0版本开始强制要求CPU支持AVX指令集,老旧CPU、部分低配置云服务器、虚拟化平台默认屏蔽AVX指令集的场景下,就会触发非法指令报错。
排查步骤
- 第一步优先验证CPU是否支持AVX指令集,执行命令:
grep flags /proc/cpuinfo | grep avx
如果执行后无任何输出,即可确认是CPU不支持AVX导致的报错。 - 如果上述命令有输出,继续排查安装包损坏或服务异常:
- 校验安装包完整性:
sudo apt-get check mongodb-org - 查看服务详细报错日志:
journalctl -u mongod.service --since today
- 校验安装包完整性:
解决方案
情况1:CPU不支持AVX指令集
可二选一执行以下方案:
- 方案一:降级安装MongoDB 4.4.x版本(4.4及之前版本无需AVX指令集支持),操作步骤如下:
- 卸载已安装的5.0版本:
sudo apt-get purge -y mongodb-org* && sudo rm /etc/apt/sources.list.d/mongodb-org-5.0.list - 导入4.4版本GPG密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - - 添加4.4版本软件源:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list - 执行安装:
sudo apt-get update && sudo apt-get install -y mongodb-org
- 卸载已安装的5.0版本:
- 方案二:如果是虚拟化平台部署的环境,可在虚拟机配置中开启AVX指令集透传,重启虚拟机后即可正常运行MongoDB 5.0。
情况2:CPU支持AVX仍报错
- 重新安装MongoDB校验文件完整性:
sudo apt-get install --reinstall mongodb-org - 排查旧版本残留文件冲突:执行
which mongod确认二进制文件路径为/usr/bin/mongod,如果返回其他路径,删除对应路径的残留MongoDB文件即可。 - 确认当前系统为Ubuntu 20.04(Focal)版本,如果是其他Ubuntu版本,替换对应版本的MongoDB软件源即可。
内容的提问来源于stack exchange,提问作者Abdul Wahhab
相关产品推荐
相关产品推荐

