Ubuntu上无法安装Mongodb提示illegal instruction (core dumped)
在VPS上部署Mongodb安装完成后检查版本提示
mongod -v Illegal instruction (core dumped)
然后发现服务也无法启动
systemctl status mongod ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: https://docs.mongodb.org/manual root@NodeAPP:~# systemctl start mongod root@NodeAPP:~# systemctl status mongod ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: failed (Result: core-dump) since Thu 2023-01-12 11:40:32 CET; 1s ago Docs: https://docs.mongodb.org/manual Process: 2024 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=dumped, signal=ILL) Main PID: 2024 (code=dumped, signal=ILL)
最后在Mongodb官网论坛得到答案:
这显然是一个 KVM 环境,其中一些主机 CPU 功能通过暴露给 VM 的“通用 KVM 处理器”虚拟化 CPU 被掩盖。
主机Xeon CPU可能具备所需的特性,但VM的CPU不支持MongoDB 5.0所需的指令(如AVX和SSE),应列在CPU Flag。
需要考虑的一些选项是:
- 尝试安装 MongoDB 4.4 服务器包(它们针对较旧的 CPU 微体系结构)
- 升级您的 VM 或主机以支持所需的服务器扩展
- 使用旧架构标签从源代码编译 MongoDB 5.0 93(考虑到您的虚拟 CPU 的指令支持似乎有限,这可能会很棘手)
查看CPU信息:cat /proc/cpuinfo
最简单的方法就是重新安装MongoDB 4版本
停止服务并卸载当前Mongodb
sudo service mongod stop sudo apt-get purge mongodb-org*
删除数据库目录并清除日志文件
sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
导入包管理系统的公钥
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
更新安装源,我的系统是Ubuntu 20.04 (Focal)
,不清楚版本的可以使用lsb_release -a
命令查看
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
更新APT
sudo apt-get update
安装MongoDB 4.8
sudo apt-get install mongodb-org=4.4.8 mongodb-org-server=4.4.8 mongodb-org-shell=4.4.8 mongodb-org-mongos=4.4.8 mongodb-org-tools=4.4.8
使用mongod --version
检查安装情况
mongod --version db version v4.4.8 Build Info: { "version": "4.4.8", "gitVersion": "83b8bb8b6b325d8d8d3dfd2ad9f744bdad7d6ca0", "openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "ubuntu2004", "distarch": "x86_64", "target_arch": "x86_64" } }
最后mongodb shell默认在4中不支持,如果需要的话可以独立安装
sudo apt-get install mongodb-mongosh