前言
wecomment
连接不上mlab
的免费mongo数据库,同样也连不上腾讯云服务器的mongo数据库,好气呀>_<,只能花时间在windows上搭建一个本地mongo了,下面是我的踩坑历程,希望能帮到你~
开始
mkdir data
cd data && mkdir db
mkdir log
cd log
# 创建mongo.log日志文件
type nul>mongo.log
- 将mongo设置为系统服务
以管理员身份运行cmd
,并执行以下命令:
cd D:\mongo\bin
D:
mongod.exe --bind_ip localhost --logpath "D:\mongo\log\mongo.log" --logappend --dbpath "D:\mongo\data\db" --port 27017 --auth --serviceName "mongodb" --serviceDisplayName "mongodb" --install
然后使用小娜搜索“服务”,在本地服务列表中找到刚才新建的服务“mongo”
, 右击点击“启动”就好了。最后在cmd中输入mongo
就能进入mongo
命令行模式了(注意如果mongo没有设置系统环境变量,请自行添加,或者每次切换到mongo的执行目录—D:\mongo\bin
执行命令)。
如何创建表和用户
在mongo命令行中执行以下命令
use wecomment
db.test.insert({"name": "xxx"})
# 查看刚才常见的数据库
show dbs
# 创建数据库的用户
use wecomment
db.createUser({
"user": "admin",
"pwd": "123456",
"roles": [{role: "readWrite", db: "wecomment"}]
})
# 使用auth命令来检测用户是否添加成功,返回1表示添加成功
db.auth("admin", "123456")
常见问题
- 在安装完
mongo
启动koa项目的时候报Authentication failed
错误
这是由于mongodb
加入了SCRAM-SHA-1
的校验方式,需要第三方工具配合进行验证。修复的方法如下:
关闭刚才创建的mongodb
的系统服务,在cmd下使用mongodb.exe
启动mongo
cd D:\mongo\bin
mongodb.exe --dbpath D:\mongo\data\db --logpath D:\mongo\log\mongo.log
注意这里不要加上--auth
参数,因为接下来的操作必须在关闭认证的情况下进行。
# 进入mongo命令行
mongo.exe
# mongo shell命令
use admin
var schema = db.system.version.findOne({"_id" : "authSchema"})
schema.currentVersion = 3
db.system.version.save(schema)
现在已经成功将system.version
文档里面的authSchema
版本修改为3。接下来删除原来创建的用户并重建它们
use admin
db.system.user.find()
db.system.user.remove({user: "admin"})
最后关闭之前开启的未认证的mongo
进程,重启系统mongodb
进程,然后再试试能否连接上mongo
。
原文请查看 https://andyliwr.github.io/2017/10/17/window_mongo_install/