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

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

猜你喜欢

转载自blog.csdn.net/yanglr2010/article/details/80871235