欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-28 20:00:10
...

如何将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用户的授权顺利完成~

相关标签: MongoDB