content
- MongoDB 安装过程及注意事项
- MongoDB 卸载过程及注意事项
- 安装卸载过程中报过的错
- 几点补充
1. MongoDB 安装过程
(1) 下载安装包
下载地址
选择3.6 MSI版本,下文以mongodb 3.6为示例
(2) 安装mongdo到指定的目录
如:D:\MongoDB\Server\3.6
(3) 安装注意
安装过程中,不要勾选 Install MongoDB Compass, 这是安装官方的可视化工具,一方面链接其官网下载速度非常慢,另外该工具也特别不好用,建议用CMD直接操作
安装完成画面
(4) 将 D:\MongoDB\Server\3.6\bin 添加到环境变量中
环境变量的作用:
将特定的目录添加到环境变量(path变量中)中,那么在任意的 cmd 目录下都可以执行 该目录下的可执行命令
用户变量: 当前登录用户的变量设置,修改 只有本用户起作用
系统变量: 对所有用户都起作用的
修改了 环境变量后, 必须重启cmd 才起作用!
(5) 配置mongod.conf文件(如下),并且在D:\MongoDB下新建 data和log 文件夹
配置mongod.conf文件
(6) 配置注意
注意一:
如果是生产环境,需要使用验证模式
即开启用户认证
auth=true
切記,否則會导致数据库风险
注意二:
绑定ip
127.0.0.1: 本机IP
localhost: 等同于 127.0.0.1
192.168.8.2: 局域网IP, 所有192.168 开头的ip,都是局域网IP
除了本机外, 局域网的机器都可以访问(前提是要关闭防火墙或者开放允许访问端口号)
121.69.88.226: 外网IP, 所有互联网的机器都可以访问
0.0.0.0: 最终的默认IP,所有以上4个类型的ip来源都可以访问!
(7) 以管理员身份打开cmd命令窗口
可以CMD切换到 D:\MongoDB\Server\3.6\bin 目录下,当然这个步骤如果环境变量安装正确,就不用考虑
(8) 将mongodb安装为服务
方式一:
在cmd命令窗口中输入 mongod --install -f “D:\MongoDB\Server\3.6\mongod.conf”
方式二:
mongod --config "D:\ MongoDB\Server\3.6\mongod.conf " --install
(9) 安装完成后,使用 net start mongodb 启动服务
2. MongoDB 卸载过程
-
先stop服务
cmd下用
sc stop mongodb -
然后想彻底清掉mongodb,需要delete服务
sc delete MongoDB -
注意!!名字是个坑,需要跟我的电脑中的服务中的mongodb,保证服务名称大小写一致
-
然后再是软件卸载,数据库删除。以上需基于服务已经完全停止并且删除
3. 安装卸载过程中报过的错
(1) net start mongodb发生系统错误2 系统找不到指定的文件
解决方法:
-
打开控制面板-管理工具-服务
-
点击mongodb服务,右键属性发现启动位置仍在在上次的安装路径下c:\program files\mongodb,没有改成D盘(就是你自己的安装盘)
-
我们需要先stop服务
sc stop mongodb
然后想彻底清掉mongodb,需要delete服务
sc delete MongoDB
(2) Connect failed
(3)"not authorized on test to execute command { listCollections: 1.0 }
虽然这个错误很简单,但是初次接触mongodb,被这个错折磨到凌晨2点…也感谢提供答案的博主…
mongodb进行操作时,出现errmsg" : "not authorized on test to execute command { listCollections: 1.0 }这个提示
表示没有权限,那就赶紧添加用户吧
切换到admin库
use admin;
添加用户
db.createUser( {
user: "sa",
pwd: "sa",
roles: [ { role: "root", db: "admin" } ]
});
既然已经添加了用户
用sa账号登录
db.auth('sa','sa');
几点补充:
1、常见安装问题:
- 设置环境变量,是设置 path 变量
- 2个目录之间,使用 ; (不是中文状态下的;) 进行分隔
- 不要使用中文目录,甚至不要使用 ‘Program Files’
- 引用文件的符号是: “” 而不是 “”
2、编程中, 不要使用 中文 作为
文件夹、文件、变量、类都使用 字母、数字、_ 作为字符串就好了,可以查看一下PEP8
3、返回信息识别:
“ok” : 1 # 代表成功了
“ok” : 0 # 代表失败了
“err” : 1 # err 是 error 的简写, 代表失败
“err” : 0 # 代表没有错, 成功了
“error” : 1
“error” : 0
4、常见的配置文件
conf、cfg、ini、xml等
5、 delete 和 truncate
- delete:
delete * from table_name
速度慢
会写日志
逐条删除
自增id不会恢复 - truncate:
truncate table table_name
速度快
整个表在磁盘删除,在使用对应的 DDL 生成一个新表
不写日志
自增ID会从1开始
6、mongodb _id 字段
如果 json 文档 中 没有指定 _id key,那么 mongodb会自动写入 _id key
{ "_id" : ObjectId("5bf661a3bde7ac69f29185e7"), "name" : "terry", "age" : 18 }
{ "_id" : ObjectId("5bf66259bde7ac69f29185e8"), "name" : "mary" }
{ "_id" : ObjectId("5bf66259bde7ac69f29185e9"), "name" : "hanmeimei" }
{ "_id" : "myid", "name" : "lilei", "age" : 20 }
查找时,
系统生成的 _id 必须这样访问:
db.test.find({'_id': ObjectId("5bf66259bde7ac69f29185e8")})