MongoDB第一次使用遇到的坑
第一次接触MongoDB,MongoDB是最近流行的NOsql数据库。
MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
安装步骤是按照前辈一步步安装的,下面是链接。可能个人电脑系统什么的不同吧,还是有一些问题。在最后做了一个总结。
https://blog.****.net/heshushun/article/details/77776706
第一步:安装MongoDB
一、先登录Mongodb官网https://www.mongodb.com/download-center#community 下载 安装包。32、64位的都行。
二、安装MongoDB
下载后的安装包:
安装比较简单,类似于普通QQ软件,中间主要是选择“Custom”自定义 安装路径修改下:D:\software\MongoDB
然后不断“下一步”,安装至结束。
安装比较容易。难点在启动Mongodb的服务以及将MongoDB设置成Windows服务,加配置文件在windows的“服务”中找到。
三、先创建数据库文件的存放位置
在MongoDB下创建data,在data下再创建db:D:\software\MongoDB\data\db
因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。
四、启动MongoDB服务
1.打开cmd命令行
2.进入D:\software\MongoDB\bin目录(注意:先输入d:进入d盘,然后输入cd D:\software\MongoDB\bin)
3.输入如下的命令启动mongodb服务:mongod --dbpath D:\software\MongoDB\data\db
即是在第三步创建的数据库存放文件路径下启动。
4.在浏览器输入http://localhost:27017 (27017是mongodb的端口号)查看,若显示:
则表示,连接成功。如果不成功,可以查看端口是否被占用。
第二部:windows配置mongodb 服务
1.先在data文件下创建一个新文件夹log(用来存放日志文件)
2.在Mongodb新建配置文件mongo.config
可能很多人都不会创建.config配置文件。那给大家介绍下简单的方法:
先创建一个mongo.txt文件,再打开,点击”另存为“,将底下的文件类型更改为”全部类型“,并更改文件名称为mongo.config。
这样就可以创建一个config的配置文件了。
2.用记事本打开mongo.config ,并输入:
dbpath=D:\software\MongoDB\data\db
logpath=D:\software\MongoDB\data\log\mongo.log
3.用管理员身份打开cmd:
可能还有很多人不会管理员身份打开cmd。这也介绍下:
在下图路径下找到cmd 的运行文件
然后右键,以管理员身份运行。打开后发现在顶端比普通打开的多了”管理员“三个字
4.配置windows服务:
cmd先跳转到 D:\software\MongoDB\bin目录下。
输入:mongod --config "D:\software\Mongodb\mongo.config" --install --serviceName "MongoDB"
即根据刚创建的mongo.config配置文件安装服务,名称为MongoDB。
完成后,再次查看本地的服务。
如果成功的话,会发现本地服务多了”MongoDB"服务。
这就大功告成了。哈哈~~~
可以通过:“开机自启动,可直接手动启动关闭,命令行net start MongoDB 启动”。
开启后,可以正常连接了。可以用pycharm等IDE连接,
个人总结:
可能遇到问题
1.mongo.exe启动失败
2.服务启动失败
3.用户数据是自己定义和管理
解决方案:
1.在bin目录下 mongo.exe 启动失败
大多是数据库目录填写错误,认真核对一下。
2.net start mongodb
必须用管理员身份才能有权限启动服务
服务没有响应控制功能:
服务有问题,服务注册表没有填写完整
win+R regedit 回车找到 MongoDB的ImagePath项
启动库路径,启动日志路径
D:\db\bin\mongod.exe --dbpath "D:\db\data\db" --logpath "D:\db\log\mongo.log" --service
重新以管理员身份net start MongoDB,大功告成
3.添加用户
坑的地方就是,需要先选择库,在添加用户。有一个从属关系
新建/使用库
use admin 使用admin内置库
show dbs 查看所有库
如果是新建其他库,是需要插入数据才能在查询种显示
use test
db.test.insert({"name":"xxxx"})
添加用户:新版本 用createUser 代替addUser
先添加一个超级管理员在admin内置库下
use admin
db.createUser({user: "admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})
在自己创建的库下面添加使用用户
use test
db.createUser({user:"test", pwd:"test", roles:[{role:"readWrite", db:"test" }]})
最后查看用户,也只会显示当前数据库下的用户信息
show users
具体的roles参数,你可以另行百度。