ContOS系统安装MongDB详细讲解

41 阅读3分钟

1. 准备工作

  1. 检查系统版本

    cat /etc/centos-release
    

    确保系统是 CentOS 7 或 CentOS 8。

  2. 更新系统包

    sudo yum update -y
    
  3. 安装依赖
    MongoDB 需要一些基础依赖,确保它们已安装:

    sudo yum install -y libcurl openssl
    

2. 添加 MongoDB 官方仓库

MongoDB 官方提供了 YUM 仓库,可以通过以下步骤添加:

  1. 创建 MongoDB 仓库文件

    sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo
    
  2. 添加以下内容(适用于 MongoDB 6.0):

    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
    
  3. 保存并退出

    • 按 Esc,然后输入 :wq 保存并退出。

3. 安装 MongoDB

  1. 安装 MongoDB 包

    sudo yum install -y mongodb-org
    
  2. 验证安装

    mongod --version
    

    如果输出类似以下内容,说明安装成功:

    db version v6.0.0
    Build Info: {
        "version": "6.0.0",
        "gitVersion": "1234567890abcdef",
        "modules": [],
        "allocator": "system",
        "environment": {
            "distarch": "x86_64",
            "target_arch": "x86_64"
        }
    }
    

4. 配置 MongoDB

  1. 创建数据目录和日志目录

    sudo mkdir -p /var/lib/mongo
    sudo mkdir -p /var/log/mongodb
    sudo chown -R mongod:mongod /var/lib/mongo
    sudo chown -R mongod:mongod /var/log/mongodb
    
  2. 编辑配置文件(可选):
    MongoDB 的配置文件位于 /etc/mongod.conf。可以根据需要修改以下参数:

    • storage.dbPath:数据目录(默认为 /var/lib/mongo)。
    • systemLog.path:日志文件路径(默认为 /var/log/mongodb/mongod.log)。
    • net.port:监听端口(默认为 27017)。

    示例:

    storage:
      dbPath: /var/lib/mongo
    systemLog:
      destination: file
      path: /var/log/mongodb/mongod.log
      logAppend: true
    net:
      port: 27017
      bindIp: 0.0.0.0  # 允许远程访问
    

    5. 启动 MongoDB 服务

  3. 启动 MongoDB

    sudo systemctl start mongod
    
  4. 设置开机自启动

    sudo systemctl enable mongod
    
  5. 检查服务状态

    sudo systemctl status mongod
    

    如果输出类似以下内容,说明 MongoDB 已成功启动:

     mongod.service - MongoDB Database Server
       Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
       Active: active (running) since ...
    

6. 验证 MongoDB 运行

  1. 连接到 MongoDB

    mongo
    

    如果成功连接,会显示以下提示符:

    >
    
  2. 测试基本命令

    > show dbs
    

    输出示例:

    复制

    admin   0.000GB
    config  0.000GB
    local   0.000GB
    

    7. 防火墙配置(可选)

如果 MongoDB 需要远程访问,需要开放防火墙端口(默认 27017):

  1. 开放端口

    sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    
  2. 验证端口是否开放

    sudo firewall-cmd --list-ports
    

8. 常见问题排查

问题 1:mongod 启动失败

  • 检查日志文件 /var/log/mongodb/mongod.log,查找错误信息。

  • 确保数据目录和日志目录的权限正确:

    sudo chown -R mongod:mongod /var/lib/mongo
    sudo chown -R mongod:mongod /var/log/mongodb
    

问题 2:libcrypto.so.1.0.0 缺失

  • 如果 MongoDB 依赖旧版本的 OpenSSL,可以安装兼容的 OpenSSL 1.0.x:

    sudo yum install openssl10
    sudo ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so
    sudo ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so
    

** 常见问题 **

如果执行mongo命令提示 bash: mongo: command not found 错误表明系统无法找到 mongo 命令。这通常是因为 MongoDB 的 Shell 工具(mongo)未安装,或者其路径未添加到系统的 PATH 环境变量中。以下是解决该问题的详细步骤:

1. 检查 MongoDB 是否已安装

  1. 检查 MongoDB 服务是否安装

    mongod --version
    

    如果输出 MongoDB 的版本信息,说明 MongoDB 服务已安装。

  2. 检查 mongo Shell 是否安装

    mongo --version
    

    如果提示 command not found,说明 mongo Shell 未安装。

  3. 安装 mongosh

    sudo yum install -y mongodb-mongosh
    
  4. 验证安装

    mongosh --version
    

    2. 使用 mongosh 连接 MongoDB

  5. 启动 MongoDB 服务(如果尚未启动):

    sudo systemctl start mongod
    
  6. 连接到 MongoDB

    mongosh
    

    如果成功连接,会显示以下提示符:

    test>
    
  7. 测试基本命令

    test> show dbs
    

    输出示例:

    admin   100.00 KiB
    config   12.00 KiB
    local    72.00 KiB