真的是,之前用过docker拉过镜像使用过Mongo,那时候也没有使用navicat这样的图形化界面来连接mongo,只是为了完成老师布置的作业,后来实习,由于一些原因,在本地搭建过一次mongo,还有一次被技术经理派去搭建了一次中间件用来做部署环境,再有一次就是换了服务器我又装了一次,,,今天,由于我d盘满了,本地装的mongo跑不起来了,我就卸载重装,装了这么多次,每次都有跳坑,不知道怎么操作,问题出在哪里,今天真的是忍无可忍,踏了那么多坑,我决定来写这篇避坑指南,好了,本仙女要开始表演了,,,
1.下载安装包
a.如果你是在本地或者在服务器使用安装包安装得话,如果没有安装包的话,此处放上一个mongo的安装包,玥玥的百度网盘中的mongo安装包
提取码: twk6
b.如果你是在linux 服务器上使用docker镜像安装的,请转向玥玥的另一篇博客在Docker下安装mongo3.4详细步骤
2.安装
下载完安装包后,你就一直点击next安装就好了,提醒一下,如果你想把他安装在你指定的位置,在同意安装协议的下一步,,,可以通过点击 "Custom(自定义)" 按钮来设置你的安装目录,第一个选项是complete默认装在C盘。此处需要点击一下。
3.mongo中最最重要也是最容易采坑的一步,配置
安装完,只是进行完了一小步,最重要的是,我们需要配置mongo的数据库存放路径,以及配置文件位置
安装完成进入到安装路径中,新建
a. data目录(放db(数据库路径)
b. log (日志存放位置)
c. mongod.cfg配置文件
data目录中新建 db目录 和 log 目录 ,log目录中新建mongod.log文件(存放日志)
日志目录里面后两个是产生的日志(忽略就可)
再回到mongo目录下,新建的mongod.cfg目录中是配置数据库存放位置和日志存放位置的,内容如下:
systemLog:
destination: file
path: E:\program files\mongo\data\log\mongod.log
dbPath: E:\program files\mongo\data\db
4.ok,现在配置完了,我们来测试下是否安装成功
a. cmd命令窗
b. 进入mongo目录的bin目录下(启动目录)
c. 在此处输入命令,,, 此处的目录地址千万别忘记加引号
mongod --dbpath "E:\program files\mongo\data\db"
如果成功,打印一堆日志之后光标会在行首闪动
这种样子,,,
在浏览器输入http://localhost:27017 (27017是mongodb的端口号)查看,若显示如下,则表示连接成功。如果不成功,可以查看端口是否被占用。
按ctrl+c退出数据库
5.配置本地windows MongoDB 服务
在第三步新建的mongod.cfg文件,同样的在cmd中进入mongo/bin这个目录,执行命令
mongod --logpath "E:\program files\mongo\data\log\mongod.log" --logappend --dbpath "E:\program files\mongo\data\db" --directoryperdb --serviceName MongoDB --install
配置数据库存放位置和日志位置,并配置服务名为MongoDB
到这里,就配置完成了,此时你可以在cmd命令窗口的任意位置执行mongo的开启和关闭命令
net start MongoDB开启mongo服务,net stop MongoDB 停止mongo服务。
到这里,你应该好奇命令行怎么进入
还是一样,命令行任意位置 mongo ,,,对,就这么简单,连接成功
配置环境变量,配置在系统变量中,
6.此时数据库还没有配置用户和密码,别急
在mongo的命令行中,使用admin数据库,创建超级用户admin,授予在所有数据库上读写数据的权限
use admin 创建admin数据库
db.createUser({user:"admin",pwd:"root123456",roles:["root"]})
db.auth(“admin”, “root123456”)
创建好超级用户后,就可以创建数据库以及数据库所属管理者了
use crowdData 创建crowdData数据库
db.createUser({user:"root",pwd:"root123456",roles:[{role:"dbOwner",db:"crowdData"}]}) 创建crowdData数据库得root用户
db.auth("root","root123456") 验证
切记!!!你如果使用自己刚才创建的数据库用来使用得话,一定要在库里插入一条数据,用navicat或者其他图形化界面连接上才显示这个数据库,不然这个数据库是不显示的!!!,,,,别跳坑里
db.crowdData.insert({ sno:"164804109", sname:"zhangyue"})
好了,现在我们用navicat连接mongo数据库,、
嗯,,,连接成功,显示crowdData数据库
本仙女的总结到此结束,有问题的下方留言哦,我们下次bug再见。