MongoDB4.2.*的安装
本篇内容简介:【为避免篇幅过长造成不适,故分为三部分:MongoDB安装 + 基本语法和demo + 设计应用和企业实例】
一、MongoDB的安装
1. 单机单节点安装
2. MongoDB集群安装(4.2开始支持事务,但需安装集群,本地以单机多端口为集群案例)
3. MongoDB集群创建db,创建新用户[免密模式下,未开启auth密码验证]
4. MongoDB副本集安装步骤
5. MySQL的数据迁移到MongoDB (通过CSV文件)
一、安装
1. 单机单节点安装
1. 下载地址:
https://www.mongodb.com/download-center/community
2. 安装命令:
1) 写配置文件
vim /usr/local/mongodb/mongodb.conf
# 端口
port=27017
# 数据库路径
dbpath=/data/mongodb/db
# 日志文件
logpath=/data/mongodb/log/mongodb.log
## 保留进程ID的文件路径
pidfilepath=/data/mongodb/mongodb.pid
# 设置后台运行
fork=true
# 日志输出方式
logappend=true
#最大同时连接数 默认2000
maxConns=5000
#允许所有IP访问,如果要限制访问,可指定以逗号分隔的ip地址
bind_ip=0.0.0.0
#是否启用身份认证
auth=false
##### [**先注释掉,启动的时候有坑,会导致无法启动] #####
# 是否支持HTTP形式访问 [**先注释掉,启动的时候有坑,会导致无法启动]
# nohttpinterface=true
# rest=false
## 来禁用预分配的数据文件,会缩短启动时间,但在正常操作过程中,可能会导致性能显著下降。
# noprealloc=true
## 设置为true,使用较小的默认数据文件大小。smallfiles减少数据文件的初始大小,并限制他们到512M,也减少了日志文件的大小
## 并限制他们到128M。如果数据库很大,各持有少量的数据,会导致mongodb创建很多文件,会影响性能。
# smallfiles=true
##### [**先注释掉,启动的时候有坑,会导致无法启动] #####
2) /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf # 根据指定配置文件,启动mongodb
3. 设置守护进程(即开机自启动)
1) vim /lib/systemd/system/mongodb.service
写入如下文件内容:
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
并执行 :wq
2) systemctl list-unit-files | grep mongodb.service # 查看开机自启动项列表中是否有mongodb
3) cd /lib/systemd/system && systemctl enable mongodb.service # 设置mongodb为开机自启动项
4) systemctl start|stop|restart mongodb.service # 启动|停止|重启mongodb
4. mongo 和 mongod 文件的区别:
/usr/local/mongodb/bin/mongo # 是进入命令行模式的入口文件
/usr/local/mongodb/bin/mongod # 是mongodb的shell命令模式的启动文件
注: /usr/local/mongodb/ 是我本地的安装目录,需自行修改为安装目录
5. mongodb设置账户密码登录
1) 创建用户
A) 创建管理员
use admin
db.createUser({user:"adminUser",pwd:"123456",roles: [{role: "userAdminAnyDatabas