事情的起因是这样的,
本人在家中电脑安装了VirtualBox软件, Ubuntu22.04.3, 安装mongodb, 使用时出现
Illegal instruction (core dumped)
安装mongodb服务(需要判断是 jammy 还是 focal)
cat /etc/os-release
1.jemmy系统需要执行安装命令
sudo wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl start mongod
2.focal系统需要执行的命令
sudo wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl start mongod
3.出现现象
我一旦使用sudo systemctl start mongod, 然后使用sudo systemctl status mongod去查看启动状态的时候, 就会发现报错,
然后使用mongod --version 就出现了标题所注的错误
网上查询也一堆没个准信, 大多数说的是我的电脑不支持AVX指令集
3.1 虚拟机查看是否支持AVX指令集命令
grep avx /proc/cpuinfo
如果没任何东西输出, 那说明虚拟机没有AVX指令集
3.2 实体机电脑查看有哪些指令集, 请自行上网下载CPU-Z或者下方链接
softonic链接下载
https://cpu-z.en.softonic.com/
个人云盘分享
https://pan.baidu.com/s/1adzGTRw8M8C-CvNIu6U63w?pwd=9999
打开软件看到, 是有AVX 和 AVX2的指令集的
4.解决方案
4.1 如果CPU-Z中确实没有AVX 和 AVX2, 那么恭喜你, 电脑太旧了, 买个新的吧, 或者安装低版本4.4 或者 4.0, 不需要指令集的版本安装上使用
4.2 如果像我电脑中有AVX 和 AVX2 指令集的, 但是虚拟器命令行无任何输出的请参照一下方式
Windows打开CMD命令(管理员模式下)
bcdedit /set hypervisorlaunchtype off
Disable Microsoft Hyper-V
DISM /Online /Disable-Feature:Microsoft-Hyper-V
Shutdown quick shutdown -s -t 2
以上步骤大致的意思是关闭电脑的 “Hyper-V平台” Windows 功能 和 部分 “Hyper管理工具”, 具体是哪些也没去看
第四步(Shutdown quick shutdown -s -t 2)为重启, 电脑重启以后, 再启动虚拟机, 可以看到输入命令有内容输出了
这个时候再启动Mongodb, 就可以正常使用了
如有问题, 请在下方留言, 下班后尽量回复