Ubuntu上无法安装Mongodb提示illegal instruction (core dumped)

技术运维MongoDB 269

在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

Post Comment