Bootstrap

MongoDB 5.0+ requires a CPU with AVX support

WARNING: MongoDB 5.0+ requires a CPU with AVX support, and your current system does not appear to have that!
2024-11-24 15:58:56   see https://jira.mongodb.org/browse/SERVER-54407
2024-11-24 15:58:56   see also https://www.mongodb.com/community/forums/t/mongodb-5-0-cpu-intel-g4650-compatibility/116610/2
2024-11-24 15:58:56   see also https://github.com/docker-library/mongo/issues/485#issuecomment-891991814
2024-11-24 15:58:56 
2024-11-24 15:58:56 mongod: line 19:    11 Illegal instruction     (core dumped) mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1
2024-11-24 15:58:56 /usr/local/bin/docker-entrypoint.sh: line 416:    31 Illegal instruction     (core dumped) "${mongodHackedArgs[@]}" --fork

日志中的警告信息指出,MongoDB 5.0及以上版本需要CPU支持AVX(高级矢量扩展)指令集,而当前系统似乎不支持AVX。以下是警告信息中提供的链接,你可以查看这些链接以获取更多信息和可能的解决方案:

解决方案

  1. 升级CPU

    • 如果可能,升级到支持AVX指令集的CPU。
  2. 降级MongoDB版本

    • 如果你无法升级CPU,可以考虑降级MongoDB到一个不需要AVX支持的版本,例如MongoDB 4.4。
  3. 使用不同的硬件

    • 如果当前硬件不支持AVX,可以考虑迁移到其他支持AVX的硬件。
  4. 使用云服务

    • 如果以上选项都不可行,可以考虑使用云服务提供商的MongoDB服务,这些服务通常运行在支持AVX的硬件上。

以下是降级MongoDB版本到4.4的示例步骤(假设你正在使用Docker):

bash

复制

# 停止并删除当前MongoDB容器
docker stop mongo
docker rm mongo

# 使用MongoDB 4.4镜像重新创建容器
docker run --name mongo -d -p 27017:27017 mongo:4.4

请确保在执行这些操作之前备份数据库,以防止数据丢失。如果你正在使用其他部署方法(如直接在服务器上安装MongoDB),则降级过程可能会有所不同。在这种情况下,请参考MongoDB官方文档中的降级指南。

;