1.导入包管理系统使用的公钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
2.为MongoDB创建一个列表文件
根据版本创建/etc/apt/sources.list.d/mongodb-org-3.4.list 列表文件
如果是Ubuntu 14.04,那么执行:
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
如果是Ubuntu 16.04,那么执行:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
3.更新本地包数据库
sudo apt-get update
4.安装最新版本的MongoDB
sudo apt-get install -y mongodb-org
5,查找mongod配置文件
配置内容如下:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /root/mongo_data/data/
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /root/mongo_data/log/mongod.log
# network interfaces
net:
port: 27000
bindIp: 0.0.0.0
# how the process runs
#processManagement:
# timeZoneInfo: /usr/share/zoneinfo
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
配置文件配置好之后,启动mongod
/usr/bin/mongod --config /etc/mongod.conf --fork --auth
第一次的时候,不需要--auth
遇到的问题:
child process failed ,exited with error number 100
出现原因是mongd配置文件中的数据路径和日至路径没有创建导致
mongo 127.0.0.1:27000
mongo 进入数据库,开始创建用户以及数据库
添加管理用户(mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase),
use admin
db.createUser( {user: "admin",pwd: "NR6YCNQwN7GPk",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
添加完管理用户后,关闭MongoDB
use admin
db.shutdownServer()
并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭
进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。
> use admin
> db.auth("admin","QWESAD") #认证,返回1表示成功
验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,
use data
db.createUser({user: "data",pwd: "QWESAD",roles: [{ role: "dbOwner", db: "data" }]})
use manage
db.createUser({user: "manage",pwd: "QWESAD",roles: [{ role: "readWrite", db: "manage" }]})
use grid
db.createUser({user: "grid",pwd: "NR6YCNQwN7GPk",roles: [{ role: "readWrite", db: "grid" }]})
到这里mongodb 安装结束
思考:
首先使用admin用户授权登陆,为什么用admin登陆呢?因为admin的角色是userAdminAnyDatabase,意思是对任意数据库的用户具有管理权限,我们要提升data数据库的权限,就必须要修改该数据库的用户角色,而admin恰好具备这样的权限,这就是原因.
db.updateUser("data",{roles: [{ role: "dbOwner", db: "data" }]})