【mongodb】神奇的rs.add(“ip:port“);

1.rs.add("ip:port");命令会做什么?

当集群中某个节点意外不同步时,如何修复。

(1)将不同步的节点踢出集群

副本集的主节点执行:

rs.remove("192.168.1.2:27017");

当执行这个命令时,集群会清理掉关于这个节点的信息,修改集群配置。并取消同步。

(2)重新将提出的节点加入集群。

rs.add("192.168.1.2:27017");  当执行这个命令时,会清理当前数据库中的数据,全部重新从主库拉去数据到当前节点,无需备份恢复操作。只需要执行这个命令就可以一键恢复从库。

### MongoDB Compass 连接被拒绝 (ECONNREFUSED 127.0.0.1:27017) 的解决方案 当遇到 `MongoDB Compass` 报错 `ECONNREFUSED 127.0.0.1:27017` 时,通常是因为 MongoDB 数据库服务未正常运行或者配置不正确。以下是可能的原因及对应的解决办法: #### 1. **确认 MongoDB 服务是否已启动** 如果 MongoDB 服务未启动,则无法通过端口 `27017` 建立连接。可以通过以下方式检查并启动服务: - 使用管理员权限打开 PowerShell 或终端窗口。 - 输入命令 `net start mongodb` 启动 MongoDB 服务[^3]。 #### 2. **修改 bindIp 配置** 默认情况下,MongoDB 只允许来自本机 (`127.0.0.1`) 的请求。如果需要支持其他 IP 地址访问,需调整绑定地址为 `0.0.0.0`,表示监听所有网络接口上的请求。具体操作如下: - 打开 MongoDB 配置文件(通常是 `/etc/mongod.conf` 或安装目录下的配置文件)。 - 将参数 `bindIp` 设置为 `0.0.0.0`,即: ```yaml net: bindIp: 0.0.0.0 port: 27017 ``` - 如果使用命令行启动 MongoDB,可以指定参数 `--bind_ip 0.0.0.0`[^1]^,^[^2]。 #### 3. **验证防火墙设置** 某些操作系统可能会启用防火墙阻止外部对 MongoDB 默认端口 `27017` 的访问。因此需要确保该端口开放: - 对于 Windows 用户,在防火墙规则中添加例外项以允许 TCP 端口 `27017`。 - 对于 Linux 用户,执行以下命令开启端口: ```bash sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload ``` #### 4. **检查数据路径是否存在** 如果没有正确初始化数据存储位置,可能导致 MongoDB 启动失败。建议手动创建标准的数据目录 `/data/db/` 并赋予适当权限: ```bash sudo mkdir -p /data/db/ sudo chown $USER:$USER /data/db/ ``` 随后尝试重新启动 MongoDB^,^[^4]。 #### 5. **查看日志排查错误原因** 若上述方法均未能解决问题,可查阅 MongoDB 日志获取更多信息。例如,通过以下命令定位问题所在: ```bash tail -f /var/log/mongodb/mongod.log ``` 或自定义的日志路径(如 `/data/db/mongod.log`),依据实际环境而定. --- ### 示例代码:通过命令行启动 MongoDB 对于临时测试场景,可以直接利用命令行快速启动 MongoDB 而无需更改全局配置文件: ```bash mongod --dbpath /data/db --port 27017 --bind_ip 0.0.0.0 --logpath /data/db/mongod.log --fork ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值