目录
远程连接:
系统环境:
Ubuntu:20.04.5 LTS
-
开始安装:
-
最好先升级软件包:
- sudo apt update
- sudo apt upgrade
注:因为我登陆的身份就是root,以下我所有的操作可以不加sudo验证。如果你登录的是非root账号,在执行某些操作遇到权限问题,记得加sudo,并输入密码验证。
-
一键下载并安装MongoDB:
apt install mongodb
中间会有确认安装提示:输入Y即可
-
配置MongoDB
-
设置账号密码
-
前言:
因为新安装的MongoDB是没有用户和密码的,不论是本地还是接外网都是很不安全的一件事。
非常不安全!!!
非常不安全!!!
非常不安全!!!
重要的事说三遍,非常不安全!!!
(本人曾经就因为为了省事,直接“裸奔”,结果就是被黑客黑了,还好只是用来测试的几个数据,不重要,要是真正上线或者使用,那后果可想而知。)
-
进入正题:
直接输入:
mongo
就可以进入MongoDB(如果后面更改了端口,那就是:mongo --port 端口号)
注意看图片标记处,就是MongoDB的默认IP(也就是本地)和端口
此时你若输入:db.getName(),你会发现,你在test库中。
插一段,关于常用的几个MongoDB操作命令如下:
show dbs:查询所有数据库
show users:显示当前所有用户
use admin:切换到admin库(注意:如果输入的数据库名不存在,则会先创建再进入)
db.getName():查看当前数据库
db.version():查看MongoDB版本
db.dropDatabase():删除数据库(要先进入想删除的数据库)
db.createUser():创建用户
db.auth():验证用户
db.repairDatabase():修复当前数据库
db.stats():当前数据库状态
……
当我们在mongo里面输入show users时,你会发现没有任何返回值:
说明新安装的MongoDB没有任何用户,那我们就先来创建一个超级管理员:
- use admin:进入admin数据库
- db.createUser({user: 'admin', pwd: '123456', roles:[{ role:'root', db:'admin'}]})
字段解释:
user: 'admin',用户名为admin
pwd: '123456',密码是123456
role:'root',表示超级管理员权限
db:'admin',表示该超级管理员管理的数据库是admin
关于MongoDB的role类别,有以下几种(方便省事,直接从大佬那里拷贝一下,来源地址:https://www.cnblogs.com/fqh123/p/15192146.html):
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
输入完确定:
下面来验证一下刚刚创建的新用户:
输入:db.auth('admin', '123456')就会看到如下图片所示:
出现1说明我们已经创建成功了。现在退出mongo,输入exit。
-
更改MongoDB配置:
在命令行输入:
vi /etc/mongodb.conf
注:如果是docker等精简版Linux环境,可能会没有vim命令,所以,可以输入:
apt install vim
进行安装。
此时是没有办法进行输入更改操作的,输入“i”后底部会出现INSERT字样,说明可以进行插入更改操作:
映入眼帘的一个地方:
bind_ip = 127.0.0.1表示绑定的ip地址,port=27017表示mongo端口
默认为本地的27017端口,所以,如果你有需求指定IP访问,那么请更改bind_ip后面的ip地址(注:如果想让MongoDB外网访问,那么请将127.0.0.1注释掉:#bind_ip=127.0.0.1,不过在有的Linux系统中注释无效,只能更改成bind_ip=0.0.0.0,我第一次就是无效,后来改成这样才可以的。)一般我们会更改MongoDB的端口,比如我更改成27018。然后再将身份验证打开:
然后按ESC退出编辑模式,再按shift+:输入wq保存并退出。
然后查看你MongoDB的运行状态,输入:
systemctl status mongodb
如果是active(running)那就说明MongoDB处于运行状态,如果不是,输入:
service mongodb start
即可。
将MongoDB设置开机自启:
systemctl enable mongodb
将MongoDB重启,不然你设置的配置可能无法生效,输入:
service mongodb restart
或者:
systemctl restart mongodb
都可以。
题外话:如果你的是某云服务器,记得在控制台中放开你刚刚更改的MongoDB端口
若是服务器也安装了防火墙,同样放开。我的防火墙没开,所以就不用管:
\
注:ufw防火墙有的Linux可能没有安装,装不装个人选择,
安装的话,输入:
apt install ufw
打开防火墙命令:
ufw enable
查看是否开启:
ufw status
允许某个端口(比如刚刚的MongoDB):
ufw allow 27018
删除某个端口:
ufw delete allow 27018
其他具体请自行百度。
-
连接服务器MongoDB:
-
服务器连接:
端口、账号、密码,并在后面加上数据库验证:
mongo --port 27018 -u admin -p 123456 --authenticationDatabase admin
-
远程连接:
打开你本地的navigate等连接工具(个人喜欢哪个就用哪个):
至此,大功告成。