1.先更新服务器仓库
sudo apt update && sudo apt upgrade -y
2.安装MongoDB
sudo
apt install mongodb
3.检查MongoDB服务状态
sudo
systemctl status mongodb
4.配置远程连接
打开配置文件:
sudo
vi /etc/mongodb.conf
将 bind_ip = 127.0.0.1
- 修改为
bind_ip = 0.0.0.0
- 或者注释掉
#bind_ip = 127.0.0.1
- 亦或是按照需求绑定多个指定ip
bing ip1, ip2, ..., ipN
5.重启服务
/etc/init.d/mongodb restart
6.释放存储空间
db.repairDatabase();
7.设置用户名和密码
use admin;
db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});
此命令意思是:创建用户:admin, 密码为 :123456,创建的权限是admin数据库的,角色权限
参考下表:
角色描述 | 角色标识 |
数据库用户角色 | read、readWrite |
数据库管理角色 | dbAdmin、dbOwner、userAdmin |
集群管理角色 | clusterAdmin、clusterManager、clusterMonitor、hostManager |
备份恢复角色 | backup、restore |
所有数据库角色 | readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase |
超级用户角色 | root |
如果设置了用户名和密码一段时间后导致有连接鉴权失败情况需要重新创建用户
或者创建一个用户然后执行删除用户就可以采用无用户访问方式
# 显示用户 show users # 删除用户 db.dropUser("spider_api")
Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'auth failed' on server 127.0.0.1:27017. The full response is {"ok": 0.0, "errmsg": "auth failed", "code": 18}
如果还是无法解决就需要卸载重装
1.停止 mongodb服务
sudo service mongod stop
2.卸载mongodb
sudo apt-get remove mongodb
3.移除相关包
sudo apt-get purge mongodb-org*
sudo apt-get purge mongodb
sudo apt-get autoremove
sudo apt-get autoclean
4.移除相关目录
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
5.查看系统还有哪些残留的文件或目录
whereis mongo
whereis mongodb
whereis mongod
which mongo
which mongodb
which mongod
重装后报这个错误:
是缺少/etc/mongodb.conf,需要下载一个放上去就可以解决了