部署MongoDB
2024年1月27日大约 5 分钟约 1057 字
MongoDB
安装方式
yum源安装
1)创建mongodb的yum源文件
国外镜像容易因为速度过慢而下载失败,建议使用国内镜像
仅替换baseurl内容即可(具体使用那个url,可以打开baseurl参考)
cd /etc/yum.repos.d
vi mongodb.repo
==========mongodb.repo==========
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
================================
https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.4/x86_64/
2)下载MongoDB
yum install -y mongodb-org
3)启动
# 启动MongoDB服务端
systemctl start mongod
# 开机自启
systemctl enable mongod
# 查看是否启动成功
# 登录Mongodb客户端
mongo
# 登出
exit
# 关闭MongoDB服务端
systemctl stop mongod
# 卸载MongoDB
yum erase $(rpm -qa | grep mongodb-org)
源码包安装
1)下载安装包
官网选择对应平台和版本的安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
2) 解压安装
# 解压
tar -zxvf mongodb-linux-x86_64-4.0.0.tgz
# 将解压文件夹移动到usr下并更名为mongodb
mv mongodb-linux-x86_64-4.0.0 /usr/mongodb
# 添加PATH环境变量
vi /etc/profile
==========profile==========
export PATH=/usr/mongodb/bin:$PATH
// 找到这一行,并在该行上面添加mongodb的环境变量
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
===========================
# profile文件刷新,使PATH环境变量生效
source /etc/profile
3)MongoDB/bin目录说明
可执行程序 | 说明 |
---|---|
mongo | 客户端命令行工具,本质是js解释器,支持js语法 |
mongod | 数据库服务端,每个实例启动一个进程,可以fork为后台运行 |
bsoudump | 将bson格式的文件存储为json格式的数据 |
mongodump | 数据库备份工具 |
mongoexport | 数据导出工具 |
mongofilles | GridFS管理工具,可实现二进制文件的存取 |
mongoimport | 数据导入工具 |
mongorestore | 数据库恢复工具 |
mongos | 分片路由,如果使用了sharding功能,则应用程序需要连接mongos |
4)创建配置
cd /usr/mongodb
mkdir db
mkdir log
touch log/mongodb.log
touch mongodb.conf
vi /usr/mongodb/mongod.conf
==========mongod.conf==========
port=27017 # 端口
bind_ip = 0.0.0.0 # ip,本机任意ip可访问
dbpath= /usr/mongodb/db # 存放数据库文件
logpath= /usr/mongodb/log/mongodb.log # 存放日志文件
logappend=true # 使用追加的方式写日志
fork=true # 以守护进程的方式运行,创建服务器进程
maxConns=100 # 最大同时连接数
noauth=true # 不启用验证
journal=true # 每次写入都会记录,即备份数据
storageEngine=wiredTiger # 存储引擎,可选mmapv1、wiretiger、mongorocks
================================
5)启动
配置项完成后,就可以启动MongoDB
# 启动MongoDB服务端
mongod --config /usr/mongodb/mongodb.conf
# 检查是否启动成功
ps aux | grep mongod
# mongodb帮助文档
mongo -help
# 登录Mongodb客户端
mongo
# 登出
exit
# 关闭MongoDB服务端
kill mongodb_进程号
远程连接
下面以yum安装的MongoDB举例参考
修改配置
vi /etc/mongod.conf
==========mongodb.conf==========
# 将默认本机连接的127.0.0.1 改为0.0.0.0
net:
port: 27017
bindIp: 0.0.0.0
================================
# 重启mongod服务
service mongod restart
注意:
- /tmp/mongodb-27017.sock文件在mongod服务开启时生成,正常关闭服务会删除。
用户配置
创建用户(账号、密码、权限)
# admin数据库
> use admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
# 其他数据库
> use test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
修改mongodb.conf文件,启用身份验证
vi /etc/mongod.conf
==========mongodb.conf==========
security:
authorization: "enabled" # disable or enabled
================================
# 重启mongod
service mongod restart
用户认证
mongo
> use admin
> db.auth("root", "123456")
1 # 授权成功
终端连接
mongo 192.168.10.201:27017/database -u username -p password
# mongoose方式连接
mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});
副本集
从4.0版本开始,MongoDB开始支持副本集下的事务。
设置副本集配置
cd /usr/mongodb
mkdir db
mkdir log data
touch log/mongodb.log
touch mongodb.conf
vi /usr/mongodb/mongodb.conf
主服务器
==========mongod.conf==========
port=27017
bind_ip = 192.168.10.201 # 仅本机能够访问
dbPath= /usr/mongodb/db # 存放数据库文件
logpath= /usr/mongodb/log/mongodb.log # 存放日志文件
logappend=true # 使用追加的方式写日志
fork=true # 以守护进程的方式运行,创建服务器进程
maxConns=100 # 最大同时连接数
noauth=true # 不启用验证
journal=true # 每次写入都会记录,即备份数据
storageEngine=wiredTiger # 存储引擎,可选mmapv1、wiretiger、mongorocks
replSet=rs1 #设置副本集名称,同一个副本集的所有节点必须相同
===============================
# 启动MongoDB服务端
mongod --config /usr/mongodb/mongodb.conf
# 初始化副本集
mongo 192.168.10.201:27017
> config_rs1={_id:"rs1",members:
[{_id:0,host:"192.168.10.201:27017"},
{_id:1,host:"192.168.10.202:27017"},
{_id:2,host:"192.168.10.203:27017"},
{_id:3,host:"192.168.10.204:27017"},
{_id:4,host:"192.168.10.205:27017"}]
}