Skip to content
On this page

安装与配置

1.0 介绍

MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组

1.1 mac 电脑安装教程

1.1.1 安装 homebrew

homebrew的安装查看官网,安装完成后,在终端中输入以下命令更新homebrewpackage数据库

brew update
1

提示:brew update升级brew的版本库,brew outdated  查看outdated的库和应用,brew upgrade  升级outdated的库和应用,brew cleanup  清理调过期的库和应用

1.1.2 安装 mongodb

使用homebrew安装mongodb,在 MAC 的终端中输入

cd /
1
brew install mongodb
1

若要查看安装信息

brew info mongodb
1

查看mongodb的版本

mongo --version
1
 which mongod
1

/usr/local/bin/mongod

如果这样了就安装成功了

启动服务

sudo mongod
1

1.2 手动部署服务器

1.2.1 下载安装包

bash
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz
1

下载完成后解压缩压缩包

bash
tar zxf mongodb-linux-i686-1.8.2.tgz
1

1.2.2. 安装准备

将 mongodb 移动到/usr/local/server/mongdb 文件夹

bash
mv mongodb-linux-i686-1.8.2 /usr/local/mongodb
1

创建数据库文件夹与日志文件

bash
mkdir /usr/local/mongodb/data
touch /usr/local/mongodb/logs
1
2

1.2.3. 设置开机自启动

将 mongodb 启动项目追加入 rc.local 保证 mongodb 在服务器开机时启动

bash
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend  --auth -–port=27017" >> /etc/rc.local
1

1.2.4. 启动 mongodb

cd 到 mongodb 目录下的 bin 文件夹启动 mongodb

下面这个是需要权限的登录方式, 用户连接需要用户名和密码

bash
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend  --auth  --port=27017 --fork
1

这个是不需要密码的(不建议)

bash
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend  --port=27017 --fork
1

1.3 宝塔一键完成

image.png

1.4 设置密码

1.4.1 进入安装路径的 bin 目录

cd /www/server/mongodb/bin
1

1.4.2 输入命令行 mongo,进入 mongodb 环境

bash
mongo
1

image.png

1.4.3 切换到 admin 数据库

use admin
1

1.4.4 给 admin 设置用户密码

  • user: 用户名
  • pwd: 用户密码
  • roles: 用来设置用户的权限,比如读,读写 等等
db.createUser({user: 'root', pwd: 'admin_mima', roles: ['root']})
1

1.4.5 验证是否添加成功,db.auth(用户名,用户密码)

db.auth('root', 'admin_mima')
1

如果返回 '1’表示验证成功, 如果是 ‘0’ 表示验证失败。


1.4.6 创建一个新的数据库,例如 asGiant

use asGiant
1

1.4.7  接下来为 asGiant 库添加一个用户,并且赋予权限,

bash
db.createUser({ user: 'aaaa', pwd: 'graphql_mima', roles: [{ role: 'readWrite', db: 'asGiant' }] })
1

这行代码意思是 创建一个 cccc 用户 给予读写权限 db 表示该用户操作的数据库名。

  • Read:允许用户读取指定数据库
  • readWrite:允许用户读写指定数据库
  • dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
  • userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限
  • dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。
  • root:只在 admin 数据库中可用。超级账号,超级权限

1.4.8  开启安全登录

一切搞定,重新开机 mongodb,通过增加  --auth  开启安全登录

mongod --dbpath /www/server/mongodb/data --auth
1

如果你是手动安装,那么需要以下操作

mongodb,MongoDB 默认是没有开启访问控制,我们通过--auth参数重启 mongod 服务。

mongod --dbpath 存放数据库文件夹路径 --auth

bash
mongod --dbpath usr/local/mongodb/bin --auth
1

一旦开启了,用户连接 mongod 必须指定用户名和密码。

image.png

如果你采用的是宝塔一键完成的

可以通过修改mongodb的配置文件来实现

image.png

修改为

image.png

net:
  port: 27017
  bindIp: 0.0.0.0

#operationProfiling:
#replication:
#    replSetName: bt_main
security:
  authorization: enabled
  javascriptEnabled: false
1
2
3
4
5
6
7
8
9
10
  • bindIp 修改为 0.0.0.0 允许外网访问
  • authorization 修改为 enabled 开启认证
    重启一下 mongodb

1.5 放行端口

image.png

沪ICP备20006251号-1