如何将MongoDB设置成自启动服务,并给admin用户授权

本文介绍如何在Windows上配置MongoDB为自启动服务,并解决安装过程中遇到的问题。此外,还详细介绍了如何通过配置文件为MongoDB的admin用户授权。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何将MongoDB设置成自启动服务,并给admin用户授权

1.将MongoDB设置为自启动服务
在Windows中:
比如已安装MongoDB v3.6, 并且MongoDB的安装路径是”D:\Program Files\MongoDB”.
创建文件夹D:\mongodb\logs, 然后在该目录下新建文件mongodb.log.

用管理员权限打开cmd, 输入:

D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

报错提示:
MongoDB 服务无法启动。
发生服务特定错误: 100. (A Service Specific error occurred, error code: 100)
请键入 NET HELPMSG 3547 以获得更多的帮助。

解决办法:
用管理员权限打开cmd, 输入:

D:\Program Files\MongoDB\Server\3.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server\3.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

删除路径”D:\mongodb\data”下的两个文件mongod.lock和storage.bson.
然后在管理员权限打开的cmd中输入”net start MongoDB”, 顺利启动.

2.给MongoDB的admin用户授权
当安装的是MongoDB v3.0.8或v3.0.15, 出现了下述报错:
CONTROL Hotfix kb2731284 or a later update is not installed, will zero-out files.

尝试在本机(win7企业版)安装补丁kb2731284(从微软的邮件中得到), 网上并无有效的解决方案。
将MongoDB升级到v3.6可绕过上述问题。

而此时若要使用mongod.cfg文件来为MongoDB的admin用户授权,mongod.cfg文件的内容应如下:

    systemLog:
       destination: file
       path: "D:\\mongodb\\log\\mongodb.log"
       logAppend: true
    storage:
       dbPath: "D:\\mongodb"
       journal:
          enabled: true
       engine: wiredTiger
    net:
       port: 27017
    setParameter:
       enableLocalhostAuthBypass: false

保存文件 D:\ProgramFiles\MongoDB\Server\3.6\bin\mongod.cfg.

然后将文件mongod.cfg中的 enableLocalhostAuthBypass值设置为true, 保存文件。

在管理员权限打开的cmd中输入如下命令:

"D:\ProgramFiles\MongoDB\Server\3.6\bin\mongod.exe" "--config=D:\ProgramFiles\MongoDB\Server\3.6\bin\mongod.cfg" --auth --install

如果mongodb service没有运行, 则输入 net start mongodb启动之。

在cmd中输入:

C:\>net start MongoDB

> use admin
> db.createUser("admin", "yourpassword", roles: ["root"]})
> db.auth(user, yourpassword)

从命令行关闭MongoDB(net stop MongoDB),再启动之(net start MongoDB)。
将文件mongod.cfg中的enableLocalhostAuthBypass值设置为false, 保存文件。

ps:
由于MongoDB v3.6(v3.2后的所有版本)已将net.http选项移除,mongod.cfg文件中不能包含net.http选项的相关设置。Refer: https://docs.mongodb.com/manual/reference/configuration-options/

此时MongoDB的admin用户的授权顺利完成~

### 如何在 Windows 系统中为 MongoDB 设置 root 用户和密码 要在 Windows 上为 MongoDB 配置 `root` 用户设置密码,可以按照以下方法完成: #### 创建管理员账户 首先启动 MongoDB 实例,在未启用身份验证的情况下运行服务。可以通过命令行输入以下内容来启动 MongoDB: ```bash mongod.exe --dbpath="C:\data\db" ``` 这里假设数据库路径位于 `C:\data\db`。 接着打开另一个终端窗口连接到 MongoDB,默认端口为 27017: ```bash mongo.exe ``` 创建一个新的管理用户(通常称为超级用户),该用户具有对整个服务器的完全控制权限。通过切换至 `admin` 数据库定义角色分配实现此操作: ```javascript use admin; db.createUser( { user: "myRootUserAdmin", pwd: "examplePassword", // 替换为你自己的强密码 roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } ); ``` 上述脚本中的 `roles` 参数指定了新用户的权限范围[^1]。 #### 启用授权机制 编辑配置文件(通常是 `mongod.cfg` 或者直接修改启动参数)。找到或添加 security 节点以激活认证功能: ```yaml security: authorization: enabled ``` 保存更改后重新启动 MongoDB 服务应用新的安全策略。 再次尝试登录时需指定用户名与密码: ```bash mongo -u myRootUserAdmin -p examplePassword --authenticationDatabase admin ``` 至此,已成功设置了具备最高权限级别的根账号用于后续管理和维护工作。 ```python # Python 示例代码展示如何使用 PyMongo 连接到启用了 auth 的 MongoDB from pymongo import MongoClient client = MongoClient('localhost', 27017, username='myRootUserAdmin', password='examplePassword', authSource='admin') print(client.list_database_names()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极客白小飞

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

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

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

打赏作者

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

抵扣说明:

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

余额充值