spring boot

MongoDB安装配置教程

2019-05-17  本文已影响0人  复旦猿

前言

实验室项目用到了MongoDB,因此,整理出一份文档如下。

配置详情

  1. MongoDB 4.0.1
  2. 环境:Ubuntu 16.04 Linux 64-bit x64

安装步骤

1.下载地址:https://www.mongodb.com/download-center/community。 如图所示,选择MongoDB server的版本,系统和下载包之后,选择下载tgz安装包。

mongo-download

2.解压。

tar -xvf mongodb-linux-x86_64-ubuntu1604-4.0.1.tgz

3.将压缩包拷贝至/usr/local/MongoDB目录

mv mongodb-linux-x86_64-ubuntu1604-4.0.1 /usr/local/mongodb

4.设置环境变量

vi ~/.bashrc

在尾端按 i 插入如下指令:

export PATH=/usr/local/mongodb/bin:$PATH

刷新环境变量,使其生效

source ~/.bashrc

配置+连接

1.创建MongoDB数据库目录
Mongodb的数据存储在data目录的db目录下,但这些目录不会自动创建,需要手动创建/data/db目录,现在根目录(/)下创建data/db目录。

mkdir -p /data/db

注:若用户在其他位置创建data/db目录,需要启动mongod 服务时用--dbpath=xxxx来指定数据库的存储目录。为了方便版本升级,我把该目录建在了MongoDB的根目录下,即/usr/local/MongoDB下。

2.启动MongoDB服务
命令行执行:

mongod --dbpath=/usr/local/mongodb/data/db --port 27017

3.连接MongoDB数据库

mongo --port 27017

即可进入mongo数据库进行数据读写了。

MongoDB认证

1.添加管理员。MongoDB 默认直接连接,无须身份验证,如果当前机器可以公网访问,且不注意Mongodb 端口(默认 27017)的开放状态,那么Mongodb就会产生安全风险,被利用此配置漏洞,入侵数据库。因此,需要启用用户验证的方式进行数据库的保护。
使用mongo shell进入数据库,运行下列命令:

use admin

db.createUser({user: "adminUser",pwd: "adminPassword",roles: [ { role:"userAdminAnyDatabase", db: "admin" } ]})

管理员创建成功,现在拥有了用户管理员——用户名:adminUser,密码:adminPass。然后,断开 MongoDB 连接, 关闭数据库。两个终端下 Ctrl+C即可。

2.启动带访问控制的 MongoDB。新建终端:

mongod --auth --dbpath=/usr/local/mongodb/data/db --port 27017

3.验证用户身份。客户端连接后,进行验证:

mongo --port 27017

use admin
db.auth("adminUser", "adminPassword")

// 输出 1 表示验证成功

4.创建普通用户。过程类似于创建管理员账户,只是 role 有所不同:

use foo

db.createUser(
  {
    user: "simpleUser",
    pwd: "simplePass",
    roles: [ { role: "readWrite", db: "foo" },
             { role: "read", db: "bar" } ]
  }
)

现在我们有了一个普通用户——用户名:simpleUser,密码:simplePass,权限:读写数据库 foo, 只读数据库 bar。

use foo表示用户在 foo 库中创建,就一定要 foo 库验证身份,即用户的信息跟随随数据库。比如上述 simpleUser 虽然有 bar 库的读取权限,但是一定要先在 foo 库进行身份验证,直接访问会提示验证失败。

use foo
db.auth("simpleUser", "simplePass")

use bar
show collections

还有一点需要注意,如果 admin 库没有任何用户的话,即使在其他数据库中创建了用户,启用身份验证,默认的连接方式依然会有超级权限

内建角色

URI形式访问

生产中常用 URI 形式对数据库进行连接:

mongodb://your.db.ip.address:27017/foo

添加用户名密码验证:

mongodb://simpleUser:simplePass@your.db.ip.address:27017/foo

参考资料

写在最后

欢迎大家关注我的个人博客复旦猿

上一篇 下一篇

猜你喜欢

热点阅读