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