MongoDB: 入门指南

如何开始使用MongoDB

要使用Mongo CLI连接到您的MongoDB实例,可以使用以下命令:

mongo --quiet mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true

例如,如果您想以admin用户身份连接到admin数据库,可以运行:

mongo --quiet mongodb://admin:<password>@<XXXXXX>.stackhero-network.com:27017/admin?tls=true

如果您的系统上没有安装Mongo CLI,您可以从MongoDB官方文档下载。或者,如果您的系统上有Docker,您可能会发现以下命令有用:

docker run -it mongo /bin/bash

为了提高安全性并确保更好的组织,建议为每个数据库创建唯一的用户。以下是创建新用户的示例脚本:

db.getSiblingDB("myDatabase")
  .createUser({
    user: "myUser",
    pwd: "myPassword",
    roles: [ { role: "readWrite", db: "myDatabase" } ],
    passwordDigestor: "server"
  });

上述脚本创建了一个名为myUser的用户,密码为myPassword,并授予其对myDatabase数据库的读写权限。

警告 确保在执行用户创建操作时以admin用户身份连接。

要从myDatabase数据库中删除用户,例如myUser,可以执行以下命令:

db.getSiblingDB("myDatabase").dropUser("myUser");

要备份您的MongoDB数据,可以使用以下命令:

mongodump --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

如果您遇到如下错误:

authentication failed for admin on <database> from client <ip>; UserNotFound: Could not find user admin@<database>

这可能是因为admin用户未在指定数据库中注册。添加--authenticationDatabase=admin选项可能会解决问题:

mongodump --authenticationDatabase=admin --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

对于压缩备份,您可以包含--gzip选项:

mongodump --gzip --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"

此错误可能在通过Admin Mongo UI尝试创建用户时出现。为避免此问题,请使用在MongoDB中创建数据库和用户部分提供的Mongo查询。

注意:Admin Mongo UI不支持直接执行查询。相反,您可以考虑使用Mongo CLI(了解更多)或GUI工具如Robo 3T(查看配置指南)。