mongodb 使用方式
主要目录文件所在位置
path: /usr/local/mongodb
mongod.lock: 根目录/data/db/mongod.lock
logpath=/usr/local/mongodb/logs/mongodb.log
/data/db: 根目录/data/db
配置文件:/usr/local/mongodb/bin/mongodb.conf
下载安装包-解压-移动到/usr/local目录下并改名
wget https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.0.2.tgz
gzip -d mongodb-linux-i686-3.0.2.tgz
tar xvf mongodb-linux-i686-3.0.2.tar
mv mongodb-linux-i686-3.0.2 /usr/local/mongodb
cd /usr/local/mongodb
mkdir db
mkdir logs
cd bin
vi mongodb.conf
配置文件
vi /usr/local/mongodb/mongodb.conf:dbpath=/usr/local/mongodb/db
写入以下配置项
dbpath=/data/db #指定数据库路径
logpath=/usr/local/mongodb/logs/mongodb.log #指定打印文件路径
port=27017 #端口
fork=true #是否后台运行
nohttpinterface=true
auth=true #是否验证账号密码
开机自动启动mongodb
vi /etc/rc.d/rc.local
/usr/local/mongodb/bin/mongod –config /usr/local/mongodb/bin/mongodb.conf
重启一下系统测试下能不能自启
进入mongodb的shell模式
/usr/local/mongodb/bin/mongod
查看数据库列表
show dbs
当前db版本
db.version();
建立软链接
ln -s /usr/local/mongodb/bin/mongod /usr/bin
ln -s /usr/local/mongodb/bin/mongo /usr/bin
后台启动或关闭
启动(必须带着–logpath)
mongod –fork –logpath=/usr/local/mongodb/logs/mongodb.log
(如果报错child process failed ->> rm -rf /data/db/mongod.lock)
关闭后台
mongo
use admin
db.shutdownServer()
远程连接mongodb
mongo 127.0.0.1:27017/test -utest -ptest
没有用户名和密码验证的话,直接使用:
mongo 127.0.0.1:27017/test
权限管理
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
- 间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
- 内部角色:__system
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
设置用户
mongodb默认是不需要账号密码的,如果配置文件内有auth=true字段,设置以下账户将开启账号密码
mongodb内一个table一个账户,admin表里给予userAdmin可以管理所有用户
如果需要管理所有用户,必须use amdin && db.auth(“superadmin”,”superadmin”)
use admin 切换到admin账户
创建超级管理员
mongodb 2.6以后的版本都是createUser之前是addUser
一般人不建议用直接使用root
db.createUser({
user: “superadmin”,
pwd: “superadmin”,
roles: [
{ role: “root”, db: “admin” }
]
})
db.auth(“superadmin”, “superadmin”)验证超级管理员的存在(1代表存在0代表不存在)
use abc 使用abc数据库(注意:创建用户一定要到指定的表里面然后创建,创建管理员才在admin表里创建)
创建用户(用户拥有abc数据库的所有权限)
db.createUser({
user: “abc”,
pwd: “abc”,
roles: [
{ role: “dbOwner”, db: “abc” }
]
})
创建用户之后需要输入账号密码才能登陆mongo
mongo -u root -p
忘记密码
忘掉密码必须先去掉auth=true参数,然后清除admin表中的system.users,之后创建账号或者不创建
vi /usr/local/mongodb/bin/mongodb.conf
注释掉auth=true(这个参数配置意思是需要验证)
use admin
删除账号密码
db.system.users.remove({})
重新设置账号密码,重启mongodb