首先确认MongoDB服务是否正在运行,使用以下命令查看状态:
sudo systemctl status mongod
如果服务未启动,启动它并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
服务启动失败时,需进一步查看日志排查原因(参考步骤6)。
MongoDB的主配置文件为/etc/mongod.conf
,需重点检查以下配置项:
net.bindIp
:确保绑定IP允许连接(本地测试可设为127.0.0.1
,远程连接需设为0.0.0.0
);net.port
:确认端口为默认的27017
(若修改需同步调整防火墙规则);security.authorization
:若启用认证(推荐),需设置为enabled
。sudo systemctl restart mongod
```。
### **3. 检查防火墙设置**
Debian默认使用`ufw`防火墙,需允许MongoDB端口(27017)的流量:
```bash
sudo ufw allow 27017/tcp
sudo ufw reload
若使用iptables
,添加规则并保存:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
```。
### **4. 测试网络连通性**
使用`ping`命令检查客户端与MongoDB服务器的网络连通性:
```bash
ping <MongoDB服务器IP>
使用telnet
或nc
测试端口是否开放:
telnet <MongoDB服务器IP> 27017
# 或
nc -zv <MongoDB服务器IP> 27017
若无法连接,需排查网络配置(如路由、云服务商安全组)。
日志文件通常位于/var/log/mongodb/mongod.log
,使用以下命令查看实时日志:
sudo tail -f /var/log/mongodb/mongod.log
日志中会记录连接失败的详细原因(如认证失败、端口冲突、数据目录权限问题),是排查问题的关键线索。
若启用了认证,连接时需提供正确的用户名、密码及认证数据库(通常为admin
):
mongo -u <用户名> -p <密码> --authenticationDatabase admin
若未创建用户,需先登录MongoDB创建管理员账户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
创建后重启MongoDB服务使认证生效:
sudo systemctl restart mongod
```。
### **7. 检查数据目录权限**
MongoDB的数据目录(默认为`/var/lib/mongodb`)需由`mongodb`用户拥有读写权限:
```bash
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chmod -R 755 /var/lib/mongodb
权限不足会导致服务无法启动或写入失败。
若使用编程语言连接MongoDB,确保驱动程序版本与MongoDB服务器版本兼容(如MongoDB 6.0需对应驱动程序3.6+)。可通过官方文档或包管理器更新驱动。