mongo-部署副本集

MongoDB数据库安装与副本验证配置

一、环境检测

1.查看是否有系统限制

# 查看用户打开文件数等限制
ulimit -a
# 修改用户限制
vim /etc/security/limits.conf
# 注意下面的几个限制
user_name             hard    nproc            65536
user_name             soft    nproc            65536
user_name             hard    nofile           65536
user_name             soft    nofile           65536

二、数据库安装

1.下载数据库

mongo下载地址链接

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.24.tgz

2.解压:

tar zxf mongodb-linux-x86_64-amazon-3.4.24.tgz

3.重命名并创建子目录:

<think>好的,用户遇到了在部署MongoDB副本时,指定端口40000启动报错的问题。我需要根据提供的引用信息来找出可能的原因和解决方案。 首先,引用[3]提到可能的原因包括CPU不支持AVX指令导致MongoDB 5.x无法运行,需要降级到4.x版本。用户使用的端口是40000,这可能与配置文件中的端口设置有关,需要检查是否正确。另外,配置文件中是否有语法错误或者路径权限问题也是常见问题。 然后,引用[4]和[5]中的配置文件示例显示,正确的端口设置应该像port=29019或port=27012,用户需要确认配置文件中是否写成了port=40000,并且没有其他服务占用该端口。如果端口被占用,更换端口或者终止占用进程即可。 另外,副本名称replSet参数是否一致,各个节点的配置是否协调也需要检查。如果配置文件中的目录路径不存在或权限不足,可能导致启动失败,需要确保目录正确且MongoDB有写入权限。 最后,用户可能需要查看日志文件,如logpath指定的路径,以获取更详细的错误信息。根据日志中的提示,比如是否提到AVX不支持,或者端口冲突,来进一步调整配置或更换MongoDB版本。</think>### MongoDB副本部署指定端口40000报错解决方案 #### 1. **检查CPU是否支持AVX指令** - **现象**:若出现`Illegal instruction`或`Waiting for MongoDB to start: cpu 不支持 AVX`错误,说明服务器CPU不支持AVX指令,而用户可能使用了MongoDB 5.x版本[^3]。 - **解决**: - 更换为MongoDB 4.x版本(如4.4.x),例如使用Docker时选择支持非AVX的镜像: ```bash docker pull mongo:4.4.18 docker run --name mongodb -p 40000:27017 -d mongo:4.4.18 --replSet "rs0" ``` #### 2. **验证端口配置正确性** - **配置文件要求**:确保配置文件中的`port`字段明确设置为`40000`,且未被其他进程占用。 ```conf # 示例配置片段[^4][^5] port=40000 replSet=testrs # 副本名称需一致 bind_ip=0.0.0.0 ``` - **端口占用检查**: ```bash netstat -tuln | grep 40000 ``` 若端口被占用,需终止占用进程或更换端口。 #### 3. **排查配置文件语法与路径权限** - **路径权限**:检查`dbpath`和`logpath`指向的目录是否存在,且MongoDB进程有读写权限: ```bash mkdir -p /Data/MongoReplSet/{dbs/db1,logs} chmod -R 755 /Data/MongoReplSet ``` - **配置文件语法**:确保无多余空格或符号错误,例如`port=40000`而非`port = 40000`(某些版本对空格敏感)。 #### 4. **副本配置一致性** - 所有节点需使用相同的副本名称(`replSet`参数),例如: ```conf # 节点1配置 replSet=testrs port=40000 # 节点2配置[^5] replSet=testrs port=40001 ``` #### 5. **查看日志定位具体错误** - 通过`logpath`指定的日志文件(如`/Data/MongoReplSet/logs/db1.log`)分析错误细节: ```bash tail -f /Data/MongoReplSet/logs/db1.log ``` - 常见日志线索: - `Address already in use`:端口冲突。 - `Failed to unlink socket file`:清理残留socket文件。 #### 6. **副本初始化步骤** 启动所有节点后,连接主节点执行初始化: ```javascript rs.initiate({ _id: "testrs", members: [ {_id: 0, host: "IP1:40000"}, {_id: 1, host: "IP2:40001"}, {_id: 2, host: "IP3:40002", arbiterOnly: true} ] }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值