Ubuntu 16.04 安装 MongoDB
#1 添加MongoDB仓库
其实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防火墙限制哪些客户端可连接。