window上搭建mongodb

前言

wecomment连接不上mlab的免费mongo数据库,同样也连不上腾讯云服务器的mongo数据库,好气呀>_<,只能花时间在windows上搭建一个本地mongo了,下面是我的踩坑历程,希望能帮到你~

开始

  1. 下载mongo
    官方网站下载地址
    百度云盘 提取密码:a9ca

  2. 新建datalog文件夹
    在安装完成后的根目录下使用cmd执行以下命令

mkdir data
cd data && mkdir db
mkdir log
cd log
# 创建mongo.log日志文件
type nul>mongo.log
  1. 将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")

常见问题

  1. 在安装完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/

猜你喜欢

转载自blog.csdn.net/u014374031/article/details/80268582
今日推荐