mongodb升级详细教程 - 3.2~4.4

本文档详细介绍了MongoDB的版本升级过程,强调了必须按相邻版本逐步升级以保持兼容性。文中提供了从3.2版本升级到4.4版本的步骤,包括下载、解压、配置启动文件、设置兼容性版本等关键操作,并展示了在命令行中检查和设置featureCompatibilityVersion的命令,确保数据库在升级后的正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb的稳定版本全部为偶数,例如:4.0、4.2

mongoDB的升级必须是相邻版本升级,不能跳版本升级。例如:3.2->3.4->3.6,不能3.2直接升级3.6,这是因为相邻版本会有兼容,如果跳版本升级很容易出问题。

下载mongodb程序

请到官网下载各个版本的程序包

解压

tar -xf mongodb-linux-x86_64-3.4.24.tgz 

配置文件

mongodb启动配置文件属性说明

# 数据文件位置
dbpath = /opt/module/mongoData

# 日志文件位置
logpath = /opt/module/mongoLog/mongodb.log

# 以追加方式写入日志,true为追加。false是覆盖
logappend = true

# 日志输出都发送到主机的syslog系统,而不是标准输出到logpath指定日志文件。syslog和logpath不能一起用,会报错:Cant use both a logpath and syslog
# syslog = true

#绑定地址。默认127.0.0.1,只能通过本地连接。进程绑定和监听来自这个地址上的应用连接。要是需要给其他服务器连接,则需要注释掉这个或则 把IP改成本机地址,
# 如192.168.200.201[其他服务器用 mongo --host=192.168.200.201 连接] ,可以用一个逗号分隔的列表绑定多个IP地址。
bind_ip = 192.168.1.10
# 默认端口27017
port = 27017

# 是否后台运行,设置为true 启动 进程在后台运行的守护进程模式。默认false。
fork = true

# 安静模式。这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet = false

# 启用日志文件,默认启用
journal = true

停止正在运行的mongodb

[root@KELL ~]# kill 26181;

启动新版本的mongodb

[root@localhost bin]# ./mongod -f /home/mongodb/mongo.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 628
child process started successfully, parent exiting

命令行连接mongodb

[root@localhost bin]# ./mongo 192.168.1.10
MongoDB shell version v3.4.24
connecting to: mongodb://192.168.1.10:27017/test
MongoDB server version: 3.4.24
Server has startup warnings: 
2020-10-16T16:58:42.836+0800 I CONTROL  [initandlisten] 
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] 
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] 
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] 
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-10-16T16:58:42.838+0800 I CONTROL  [initandlisten] 
> 

更新新版本数据文件:

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : "3.2", "ok" : 1 } #查看兼容性版本
> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )  #修改兼容性版本
{ "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : "3.4", "ok" : 1 }

重复执行上面的步骤到最新版本

包括下载、解压、运行新版本的程序。

下面是每个包运行后最后一步的输出:

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.4" }, "ok" : 1 }
> db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } ) 
{ "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
> db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
{ "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.0" }, "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.0" }, "ok" : 1 }
> db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
{ "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.2" }, "ok" : 1 }

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.2" }, "ok" : 1 }
> db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
{ "ok" : 1 }
> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "4.4" }, "ok" : 1 }

完成

对于 MongoDB 启动时出现的错误,可以尝试以下解决方案: 1. 检查配置文件路径:确保您提供的配置文件路径正确无误,并且配置文件存在于指定的位置。在您的命令中,确认 `~/softconfig/mongodb-macos-x86_64-6.0.8/mongodb.conf` 是否是正确的配置文件路径。 2. 检查配置文件内容:打开配置文件 `mongodb.conf`,确保其中的配置选项正确设置。特别注意以下几个常见的配置项: - `bindIp`:MongoDB 绑定的 IP 地址,可以尝试将其设置为 `0.0.0.0`,以允许所有 IP 地址连接到 MongoDB- `port`:MongoDB 监听的端口号,默认是 27017,确保该端口没有被其他进程占用。 - `dbpath`:MongoDB 数据库文件存储路径,确保该路径存在并且有正确的读写权限。 3. 检查日志文件:运行命令时,观察控制台输出的错误信息。如果有提供日志文件路径,可以查看相关日志文件,以获取更详细的错误信息。通常,MongoDB 的日志文件位于 `/var/log/mongodb/` 目录下。 4. 检查数据库文件权限:确保 MongoDB 数据库文件所在的目录具有正确的读写权限。可以尝试使用管理员权限运行启动命令。 5. 检查 MongoDB 版本和操作系统兼容性:确保您所使用的 MongoDB 版本与您的操作系统兼容。如果您的操作系统是最新版本,但 MongoDB 版本较旧,可能需要升级 MongoDB。 如果尝试了以上解决方案后仍然无法解决问题,建议您查阅 MongoDB 的官方文档、社区论坛或向 MongoDB 开发人员社区求助,以获得更具体的问题解决方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiegwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值