MongoDB: 入门指南
如何开始使用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
在MongoDB中创建数据库和用户
为了提高安全性并确保更好的组织,建议为每个数据库创建唯一的用户。以下是创建新用户的示例脚本:
db.getSiblingDB("myDatabase")
.createUser({
user: "myUser",
pwd: "myPassword",
roles: [ { role: "readWrite", db: "myDatabase" } ],
passwordDigestor: "server"
});
上述脚本创建了一个名为myUser的用户,密码为myPassword,并授予其对myDatabase数据库的读写权限。
警告 确保在执行用户创建操作时以
admin用户身份连接。
在MongoDB中删除用户
要从myDatabase数据库中删除用户,例如myUser,可以执行以下命令:
db.getSiblingDB("myDatabase").dropUser("myUser");
备份MongoDB数据
要备份您的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"
故障排除
解决错误 Use of SCRAM-SHA-256 requires undigested passwords
此错误可能在通过Admin Mongo UI尝试创建用户时出现。为避免此问题,请使用在MongoDB中创建数据库和用户部分提供的Mongo查询。
注意:Admin Mongo UI不支持直接执行查询。相反,您可以考虑使用Mongo CLI(了解更多)或GUI工具如Robo 3T(查看配置指南)。