其实MongoDB已经在Ubuntu的默认仓库中了,只是它并不是最新版。建议使用官方的MongoDB仓库,添加key:
$
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
添加源:
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
1
|
$ echo "deb http://repo.mongodb.org/apt/ubuntu nial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
|
#2 安装MongoDB
1
2
|
$
sudo
apt
-
get
update
$
sudo
apt
-
get
install
mongodb
-
org
|
#3 启动MongoDB服务
1
2
|
$
sudo
systemctl
start
mongod
$
sudo
systemctl
status
mongod
|
开机自启:
1
|
$
sudo
systemctl
enable
mongod
|
- MongoDB源代码:https://github.com/mongodb/mongo
- mongoDB文档:https://docs.mongodb.com/manual/
#4 MongoDB安全设置
MongoDB的登陆认证默认是关闭的,本地系统的任意用户都可以访问数据库,并且拥有全部访问权限。为了提高数据库安全,下面来开启认证功能并创建一个管理员用户。
进入Mongo shell:
1
|
$
mongo
|
创建一个管理员用户:
1
2
3
4
5
6
7
|
>
use
admin
# 切换数据库
>
db
.
createUser
(
{
user
:
"NewAdmin"
,
pwd
:
"Test1234"
,
roles
:
[
{
role
:
"userAdminAnyDatabase"
,
db
:
"admin"
}
]
}
)
|
- https://docs.mongodb.com/manual/core/authentication/
执行exit命令或CTRL-C退出Mongo shell。
编辑mongod.conf开启authorization,这样用户需要提供用户名和密码才能操作mongo(没登陆认证也可以连接)。
1
|
$
sudo
vim
/
etc
/
mongod
.conf
|
去掉#security:前的注释并添加一行,如下:
1
2
3
4
|
.
.
.
security
:
authorization
:
"enabled"
.
.
.
|
重启mongodb使配置生效:
1
|
$
sudo
systemctl
restart
mongod
|
使用新创建的管理员用户登陆:
1
|
$
mongo
-
u
NewAdmin
-
p
--
authenticationDatabase
admin
|
#5 配置远程访问
编辑mongod.conf配置文件,添加:
1
2
3
4
5
|
.
.
.
net
:
port
:
27017
bindIp
:
127.0.0.1
,
IP_of
_MongoHost
.
.
.
|
重启mongod。
1
|
$
mongo
-
u
NewAdmin
-
p
--
authenticationDatabase
admin
--
host
IP_of_MongoHost
|
可以使用ufw防火墙限制哪些客户端可连接。