mongodb 报"when a host is not a member of a replica set' on server 127.0.0.1:27017" 解决方案

本文详细介绍了在部署本地服务器运行的MONGODB数据库时遇到的错误及其解决方案。通过调整配置文件,去掉writeConcern属性,成功解决了服务器备份相关的问题。

在部署本地服务器运行的MONGODB数据库,可能会报上述错误;   

从字面意思上看,与服务器备份有关;

stackoverflow.com给出的解决方案如下;

个人配置如下:

<mongo:mongo-client id="mongo" host="${mongo.host}" port="${mongo.port}" credentials="${mongo.credentials}">
        <mongo:client-options
            threads-allowed-to-block-for-connection-multiplier="${mongo.allowdThreads}"
            connect-timeout="${mongo.connectTimeout}" socket-timeout="${mongo.socketTimeout}"
             />
    </mongo:mongo-client>

去掉writeConcern属性,问题解决;

在 Docker 中使用 `docker run -it mongo:4.4 mongo` 连接 MongoDB 时出现 `Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused` 错误,可能由多种原因导致,以下是一些解决办法: #### 检查 MongoDB 容器是否运行 要保证 MongoDB 容器已正常运行。可使用 `docker ps` 命令查看正在运行的容器列表,若未找到 MongoDB 容器,需使用 `docker run` 命令启动: ```bash docker run -d -p 27017:27017 --name my-mongo mongo:4.4 ``` #### 检查端口映射 确保 MongoDB 容器的 27017 端口已正确映射到宿主机的 27017 端口。启动容器时,使用 `-p` 参数进行端口映射,例如: ```bash docker run -d -p 27017:27017 mongo:4.4 ``` #### 检查防火墙设置 防火墙可能会阻止对 27017 端口的访问。需确保防火墙允许 27017 端口的入站和出站流量。以 Ubuntu 系统为例,可使用以下命令开放 27017 端口: ```bash sudo ufw allow 27017 ``` #### 检查 MongoDB 配置 确保 MongoDB 配置允许从外部访问。可通过修改 MongoDB 配置文件,将 `bindIp` 设置为 `0.0.0.0`,允许从任何 IP 地址访问: ```bash docker exec -it my-mongo bash echo "net.bindIp: 0.0.0.0" >> /etc/mongod.conf service mongod restart ``` #### 使用正确的连接命令 若 MongoDB 容器运行在宿主机上,可使用以下命令连接: ```bash docker run -it mongo:4.4 mongo --host <宿主机 IP 地址> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值