首先確認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+)??赏ㄟ^官方文檔或包管理器更新驅動。