CentOS安装MongoDB

CentOS安装MongoDB

1. 安装并运行

在 CentOS 上安装 MongoDB,你可以按照以下步骤进行:

  1. 导入 MongoDB 的 GPG 密钥:

    sudo rpm --import https://www.mongodb.org/static/pgp/server-5.0.asc
    
  2. 创建 MongoDB 的 YUM 存储库文件 /etc/yum.repos.d/mongodb-org-5.0.repo,并使用文本编辑器打开它:

    sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo
    

    在文件中添加以下内容:

    [mongodb-org-5.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
    

    保存并关闭文件。

  3. 安装 MongoDB:

    sudo yum install -y mongodb-org
    
  4. 启动 MongoDB 服务:

    sudo systemctl start mongod
    
  5. 设置 MongoDB 开机自启动:

    sudo systemctl enable mongod
    
  6. 检查 MongoDB 服务状态:

    sudo systemctl status mongod
    

    如果一切正常,你应该会看到 MongoDB 服务已经运行。

  7. 默认情况下,MongoDB 监听在 127.0.0.1 的本地接口上。如果你需要允许远程访问,你需要编辑 MongoDB 配置文件 /etc/mongod.conf 并更改 bindIp 部分以允许所需的 IP 地址。保存更改并重新启动 MongoDB 服务。

  8. 确保防火墙允许 MongoDB 的访问。如果使用默认的 MongoDB 端口 27017,请确保你的防火墙规则允许流量通过该端口。

现在,MongoDB 应该已经安装并在 CentOS 上运行。你可以使用 mongo 命令行客户端或其他 MongoDB 客户端工具连接到数据库。

2. 创建用户/密码

在默认配置下,MongoDB 安装后没有设置密码,因此可以直接通过没有身份验证的方式访问 MongoDB 数据库。这在生产环境中是不安全的,因此建议你设置 MongoDB 的身份验证密码以增强安全性。

以下是在 MongoDB 上设置密码的一般步骤:

  1. 启动 MongoDB 并连接到数据库服务器。

    mongo
    
  2. 切换到 admin 数据库。你将在 admin 数据库中创建用户。

    use admin
    
  3. 创建一个管理员用户,并为其分配密码。在这个例子中,我们创建一个用户名为 adminUser 的管理员用户,你可以替换为你想要的用户名和密码。

    db.createUser({ user: "adminUser", pwd: "yourPassword", roles: ["root"] })
    

    请确保将 yourPassword 替换为你选择的实际密码。

  4. 退出 MongoDB。

    quit()
    
  5. 编辑 MongoDB 配置文件 /etc/mongod.conf

    sudo vi /etc/mongod.conf
    

    添加以下行以启用身份验证:

    security:
      authorization: enabled
    

    保存并关闭文件。

  6. 重新启动 MongoDB 服务。

    sudo systemctl restart mongod
    

现在,MongoDB 已经配置了身份验证,你需要提供用户名和密码才能访问数据库。在命令行上连接到 MongoDB 时,你可以使用 -u-p 选项提供用户名和密码:

mongo -u adminUser -p yourPassword --authenticationDatabase admin

请确保将 adminUseryourPassword 替换为你实际设置的用户名和密码。

3. 测试语句

要测试 MongoDB 数据库中的查询语句或执行其他操作,你可以使用 MongoDB 的命令行客户端 mongo。以下是一些示例查询语句和其他操作:

  1. 连接到 MongoDB 数据库:

    mongo -u adminUser -p yourPassword --authenticationDatabase admin
    

    请将 adminUseryourPassword 替换为你的用户名和密码。

  2. 列出所有数据库:

    show dbs
    
  3. 切换到一个数据库:

    use yourDatabase
    

    yourDatabase 替换为你要使用的实际数据库。

  4. 插入文档到集合:

    db.yourCollection.insert({ key: "value" })
    

    yourCollection 替换为你要插入文档的集合名称,keyvalue 替换为你要插入的字段和值。

  5. 查询集合中的文档:

    db.yourCollection.find()
    

    这将返回集合中的所有文档。

  6. 更新文档:

    db.yourCollection.update({ key: "value" }, { $set: { keyToUpdate: "newValue" } })
    

    这将更新匹配条件的文档中的字段值。

  7. 删除文档:

    db.yourCollection.remove({ key: "value" })
    

    这将删除匹配条件的文档。

  8. 显示集合中的文档数:

    db.yourCollection.count()
    

    这将返回集合中的文档数量。

4. 允许外网访问

要允许外网访问 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根据你的环境设置防火墙规则。以下是一般步骤:

  1. 编辑 MongoDB 配置文件:

    打开 MongoDB 的配置文件,通常位于 /etc/mongod.conf。你可以使用文本编辑器打开它,例如:

    sudo vi /etc/mongod.conf
    
  2. 在配置文件中找到 bindIp 配置项。默认情况下,它可能设置为 127.0.0.1,这只允许本地访问。你需要更改它以允许外网访问。

    bindIp: 0.0.0.0
    

    这将允许 MongoDB 侦听所有网络接口上的连接。

    请注意,将 bindIp 设置为 0.0.0.0 可能会带来一定的安全风险,因为它会使 MongoDB 开放给所有的IP地址。因此,你应该采取其他措施来限制对 MongoDB 的访问,如设置身份验证和访问控制列表(ACL)。

  3. 保存并关闭配置文件。

  4. 重新启动 MongoDB 服务:

    sudo systemctl restart mongod
    
  5. 设置防火墙规则:

    如果你的服务器上启用了防火墙(如Firewalld),你需要确保打开 MongoDB 的监听端口(默认是27017)以允许外部访问。你可以运行以下命令:

    sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    

    这将添加一个永久的规则,允许外部连接到 MongoDB 的端口。

现在,你的 MongoDB 服务器应该已经允许外部访问。但请注意,在将 MongoDB 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摘星喵Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值