Cent OS 7.5 安装和升级mongodb

  • Post author:
  • Post category:其他


一、前言

因mongodb版本过低检测出bug,要对mongodb进行版本升级,之前没做过,这里做一下完整记录

ps1:mongodb大版本升级是不能夸版本的,比如3.2不能直接升级到5.0,要依次升级

ps2:补丁版本是可以跨着升级的,比如3.2.4直接升级到3.2.22

二、安装

1、现在官网下载服务器的3.2.4版本

2、

# 创建目录
mkdir /usr/local/mongodb
# 上传3.2.4的mongo并解压到这个目录下
# 在目录下创建data、log、etc三个目录,分别用来存放数据、日志和配置文件
cd /usr/local/mongodb
mkdir data
mkdir log
mkdir etc
# 在etc下创建配置文件
cd etc
vi mongodb.conf

3、mongodb.conf内容

# 数据存储目录
dbpath=/usr/local/mongodb/data
# 日志存储目录
logpath=/usr/local/mongodb/log/mongodb.log
# 端口
port=27017
# 是否后台运行
fork=true
# 是否开启日志持久存储
journal=false
# 存储引擎
storageEngine=mmapv1


详解:https://www.cnblogs.com/xibuhaohao/p/12580331.html

4、第一次启动

# 第一次启动时不需要密码的
 cd /usr/local/mongodb/bin/
./mongod --config /usr/local/mongodb/etc/mongodb.conf 

#会给一个进场号,看到successfully字样代表启动成

# 执行命令进入mongodb的shell交互
./mongo

# 开始创建一个用户并给予权限
use admin;
db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
# 具体权限相关百度看一下
# 执行这条命令可以看到刚才创建的用户
show users;

5、添加完权限用户后,需要关闭服务,以权限重启mongo

# 关闭服务不可以直接kill服务,如果kill掉了需要去data/db目录下删除mongo.lock文件
db.shutdownServer();
# 权限不够的话这里会报错,关闭成功后可以通过端口和ps检查一下

# 重启前需要编辑配置文件添加  auth=true  
 vi /usr/local/mongodb/etc/mongodb.conf

# 添加完毕保存后需要重新启动mongo
./mongod --config /usr/local/mongodb/etc/mongodb.conf 
# 再次进入shell
use admin;
# 输入密码返回1正确
db.auth("root","123456")

# 至此安装完毕,可以创建自己的库了

三、配置环境变量

# 编辑profile,添加
vi /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin
# 保存再source一下
source /etc/profile

# 建立软连接
ln -s /usr/local/mongodb/bin/mongo  /usr/bin/mongo


四、设置开机启动

vi /etc/rc.d/init.d/mongod
# 写入以下内容
start() {  
/usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/etc/mongodb.conf 
}  
  
stop() {  
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf --shutdown  
}  
case "$1" in  
  start)  
 start  
 ;;  
  
stop)  
 stop  
 ;;  
  
restart)  
 stop  
 start  
 ;;  
  *)  
 echo  
$"Usage: $0 {start|stop|restart}"  
 exit 1  
esac


# 保存后给予权限
chmod +x /etc/rc.d/init.d/mongod
# 测试启动
service mongod start/stop/restart




# 导入命令
./mongorestore -d admin -u root -p 123456 --drop /root/sd/root/sd/admin
# 导出命令
 ./mongodump -d admin -u root -p 123456 -o /root/

# 导出单个集合
./mongoexport -d admin -c role -o /root/role.json -u root -p 123456
# 导入单个集合
./mongoimport -u root -p 123456 -d admin -c role --type=json --file /root/role.json

五、升级补丁版本

# 停止服务
./mongod --config /usr/local/mongodb/etc/mongodb.conf --shutdown
# 从官网下载新的补丁版本,并解压
# 把其中的bin直接替换旧的bin
# 然后直接启动

/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf 

六、集群升级补丁版本

# 和单机版本升级一样,可能需要降级
rs0:PRIMARY> rs.stepDown()
{
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1598524885, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1598524885, 1)
}
rs0:SECONDARY>



版权声明:本文为aliaichidantong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。