专业的编程技术博客社区

网站首页 > 博客文章 正文

ubuntu16.04通过apt-get方式安装MongoDB(备忘)

baijin 2024-08-24 22:29:30 博客文章 6 ℃ 0 评论

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" }]})

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表