1. 检查MongoDB服务运行状态
首先确认MongoDB服务是否正在运行,使用命令:
sudo systemctl status mongod
若服务未启动,执行以下命令启动并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
2. 验证MongoDB配置文件设置
MongoDB的主配置文件为/etc/mongod.conf
,需重点检查以下两项:
net.bindIp
应设置为允许连接的IP地址(如0.0.0.0
允许所有IP,127.0.0.1
仅本地连接);net.port
默认为27017
,确保未被其他服务占用。sudo systemctl restart mongod
3. 配置防火墙允许MongoDB端口
若系统启用了防火墙(如ufw
或iptables
),需放行MongoDB的默认端口(27017):
sudo ufw allow 27017/tcp
sudo ufw reload
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
4. 检查身份验证设置
若启用了MongoDB身份验证(security.authorization: enabled
),连接时需提供正确的用户名、密码及认证数据库:
mongo -u <username> -p <password> --authenticationDatabase <auth-db>
security: authorization: enabled
use admin
db.createUser({ user: "admin", pwd: "your_password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
5. 测试网络连通性
使用ping
命令检查客户端与MongoDB服务器的网络连通性:
ping <MongoDB服务器IP>
使用telnet
或nc
命令测试端口是否可达:
telnet <MongoDB服务器IP> 27017
或
nc -zv <MongoDB服务器IP> 27017
6. 查看MongoDB日志定位错误
MongoDB日志文件通常位于/var/log/mongodb/mongod.log
,使用以下命令查看最新错误信息:
tail -100f /var/log/mongodb/mongod.log
或通过grep
过滤关键词(如“error”“failed”):
grep -i "error" /var/log/mongodb/mongod.log
7. 更新MongoDB驱动程序
若使用编程语言(如Node.js、Python)连接MongoDB,需确保驱动版本与MongoDB服务器版本兼容。例如:
mongoose
驱动:运行npm update mongoose
;pymongo
驱动:运行pip install --upgrade pymongo