1,下载mongodb
官网下载地址:https://www.mongodb.com/download-center/community
我这里直接使用wget下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz
2,解压文件,并将文件移动到/usr/local/
tar -zxvf mongodb-linux-x86_64-4.0.10.tgz
mv mongodb-linux-x86_64-4.0.10 /usr/local/
cd /usr/local/mongodb-linux-x86_64-4.0.10/
3,创建数据存放文件夹、日志文件夹、配置文件夹
mkdir data
mkdir logs
mkdir etc
4,创建配置文件并且进行配置
cd etc/
vim mongodb.conf
配置文件内容
port=27017 //默认服务器端口号
bind_ip=0.0.0.0 //绑定访问ip(生产环境建议设置成127.0.0.1)
dbpath=/usr/local/mongodb-linux-x86_64-4.0.10/data //数据存储目录
logpath=/usr/local/mongodb-linux-x86_64-4.0.10/logs/mongodb.log //日志文件
fork=true //后台运行
logappend=true //使用追加的方式写日志
maxConns=5000 //最大同时连接数,默认2000
storageEngine=mmapv1 //指定存储引擎为内存映射文件
5,启动mongodb
/usr/local/mongodb-linux-x86_64-4.0.10/bin/mongod --config /usr/local/mongodb-linux-x86_64-4.0.10/etc/mongodb.conf
启动后运行命令 netstat -lnpt|grep 27017 即可查看到mongodb的运行状态
并且直接在浏览器输入地址信息,就可以看到响应信息
6,停止mongodb
/usr/local/mongodb-linux-x86_64-4.0.10/bin/mongod --shutdown --dbpath /usr/local/mongodb-linux-x86_64-4.0.10/data
或者使用命令关闭:
use admin;
db.shutdownServer();
关闭MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件,并且运行下面命令修复)
/usr/local/mongodb-linux-x86_64-4.0.10/bin/mongod --repair --dbpath=/usr/local/mongodb-linux-x86_64-4.0.10/data
7,设置管理员账号密码
1,首先停止mongodb,通过需要认证的方式启动mongodb,–auth #启用认证
/usr/local/mongodb-linux-x86_64-4.0.10/bin/mongod --auth --config /usr/local/mongodb-linux-x86_64-4.0.10/etc/mongodb.conf
2,创建管理员用户
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"123456",roles:["root"]})
Successfully added user: { "user" : "admin", "roles" : [ "root" ] }
3,重新打开cmd,进行认证登陆
> use admin
switched to db admin
> db.auth('admin','123456')
1
>
输出一个结果值为1,说明这个用户匹配上了,如果用户名、密码不对,输出为0
4,mondodb role类型
数据库用户角色(Database User Roles)
read:授予User只读数据的权限
readWrite:授予User读写数据的权限
数据库管理角色(Database Administration Roles):
dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User
备份和还原角色(Backup and Restoration Roles):
backup
restore
跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server
8,添加数据库用户
> use testdb
switched to db testdb
> db.createUser({user: "testdb", pwd: "123456", roles: [{ role: "dbOwner", db: "testdb" }]}) # 创建用户testdb,设置密码123456,设置角色dbOwner
最后在向大家推荐一个java面试神器(java面试宝典),小程序版的,无需下载即可使用: