温馨提示×

MongoDB Linux安装失败怎么办

小樊
41
2025-12-14 12:27:29
栏目: 云计算

MongoDB Linux 安装失败排查与修复

一、先按发行版核对基础依赖

  • 不同发行版缺少基础依赖会导致安装或启动阶段报错,先安装对应依赖再重试:
    • RHEL/CentOS:sudo yum install -y libcurl openssl
    • Ubuntu 18.04/Debian 10:sudo apt-get install -y libcurl4 openssl
    • Ubuntu 16.04/Debian 9:sudo apt-get install -y libcurl3 openssl
  • 若使用 tgz 二进制包,解压后建议将 <安装目录>/bin 加入 PATH,便于直接执行 mongod/mongo。

二、包管理安装常见报错与修复

  • 无法定位包 mongodb-org(Ubuntu/Debian)
    • 原因:未添加或添加错误 MongoDB 官方 APT 源
    • 修复示例(Ubuntu 20.04,MongoDB 5.0):
      • sudo apt-get update && sudo apt-get install -y gnupg
      • wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
      • echo “deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
      • sudo apt-get update && sudo apt-get install -y mongodb-org
  • Unit mongod.service not found(服务单元缺失)
    • 原因:安装不完整或目录残留。
    • 修复:
      • sudo apt-get purge mongodb-org*
      • 清理旧数据目录:sudo rm -r /var/log/mongodb /var/lib/mongodb
      • 重新安装:sudo apt-get install -y mongodb-org
      • 启动与自启:sudo systemctl start mongod;sudo systemctl enable mongod
  • 依赖冲突或版本不匹配(如 libssl1.0.0 无法满足)
    • 原因:发行版版本与仓库版本不匹配(常见于将旧教程用于新系统,或反之)。
    • 修复:核对系统版本与仓库路径是否匹配;必要时完全清理后按官方教程重装;避免混用不同主版本仓库。

三、二进制 tgz 包启动失败与库依赖问题

  • 架构不匹配
    • 报错示例:./mongod: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
    • 原因:在 64 位系统运行 32 位二进制。
    • 修复:下载并使用与系统架构一致的 x86_64 包。
  • 缺少共享库
    • 报错示例:error while loading shared libraries: libstdc++.so.6: cannot open shared object file
    • 修复(RHEL/CentOS):执行 yum provides libstdc++.so.6 查看提供包,然后安装对应架构版本,例如:sudo yum install libstdc+±4.8.5-4.el7.i686;如有多架构冲突,先升级同架构版本再安装缺失架构,避免粗暴关闭 multilib 检查。
  • YAML 配置解析错误
    • 报错示例:Error parsing YAML config file: yaml-cpp: error at line 2, column 13
    • 修复:检查 mongod.conf 缩进(仅用空格、不用 Tab)、冒号后必须有空格、层级对齐。

四、服务无法启动的快速定位步骤

  • 查看服务状态与日志
    • sudo systemctl status mongod
    • sudo tail -f /var/log/mongodb/mongod.log
  • 以前台方式直接启动,观察控制台输出
    • mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log
  • 端口与进程检查
    • ss -lntp | grep 27017 或 netstat -tlnup | grep 27017
    • ps -ef | grep mongod
  • 正常关闭再启动(避免直接 kill)
    • 通过 mongo shell:use admin;db.shutdownServer()
    • 或使用命令:mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

五、安全与远程访问配置要点

  • 启用认证
    • 编辑 /etc/mongod.conf
      • security:
        • authorization: enabled
    • 重启:sudo systemctl restart mongod
    • 创建管理员:mongo;use admin;db.createUser({ user: “admin”, pwd: “强密码”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })
    • 登录:mongo -u admin -p --authenticationDatabase admin
  • 绑定地址
    • 如需远程访问,将 bindIp: 127.0.0.1 改为 bindIp: 0.0.0.0(或指定内网网段),并配合防火墙仅开放必要来源。

0