一、背景
在宿主机centos上启一个Mongo容器,暴露端口21117,并设置用户名,密码(root/mongo)
docker run --name mongo1 -p 21117:27017 -d mongo --noprealloc --smallfiles --auth
在宿主机上通过mongo客户端来连接
mongo --port 21117 admin
结果db.auth后,报错:
原因:mongo客户端版本较低导致,centos之前安装的版本为mongo 2.6.12,而docker对应的mongo版本为3.6,那既然因为版本过低导致,那就把宿主机上的mongo升级一下了
二、具体操作
1.配置MongoDB的yum源
新建或修改文件,vim /etc/yum.repos.d/mongodb-org-3.4.repo
#添加以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
#这里可以修改 gpgcheck=0, 省去gpg验证
yum makecache
2、卸载旧版mongo
yum remove mongodb-2.6.12-6.el7.x86_64
yum remove mongodb-server-2.6.12-6.el7.x86_64
3、安装新版mongo
yum -y install mongodb-org
4、查看mongo版本
mongo --version
5、再次连接mongo服务
mongo --port 21117
可以看到,问题已经解决了~
三、常用命令
查看mongo安装位置 :
whereis mongod
查看修改配置文件 :
vim /etc/mongod.conf
3.启动MongoDB
启动mongodb :
systemctl start mongod.service
停止mongodb :
systemctl stop mongod.service
查到mongodb的状态:
systemctl status mongod.service