MongoDB基本操作、用户管理

安装MongoDB

  1. 创建所需用户和组

[root@mgDB ~]# useradd mongod
[root@mgDB ~]# passwd mongod

  1. 创建mongodb所需目录结构

[root@mgDB ~]# mkdir -p /mongodb/27017/{conf,log,data,bin}

  1. 解压文件

[root@mgDB ~]# tar xf mongodb-linux-x86_64-rhel70-3.2.16.tgz

  1. 拷贝bin目录下程序到/mongodb/27017/bin

[root@mgDB ~]# cp -a mongodb-linux-x86_64-rhel70-3.2.16/bin/* /mongodb/bin

  1. 设置目录结构权限

[root@mgDB ~]# chown -R mongod:mongod /mongodb

  1. 设置用户环境变量

[root@mgDB ~]# su - mongod
[root@mgDB ~]$ vi .bash_profile
export PATH=/mongodb/bin: P A T H [ r o o t @ m g D B   ] PATH [root@mgDB ~] source .bash_profile

  1. 启动MongoDB

mongod --dbpath=/mongodb/27017/data --logpath=/mongodb/27017/log/mongodb.log --port=27017 --logappend --fork

  1. 使用配置文件

[root@mgDB ~]# vim /mongodb/27017/conf/mongodb.conf
logpath=/mongodb/27017/log/mongodb.log
dbpath=/mongodb/27017/data
port=27017
logappend=true
fork=true

YAML格式:
systemLog:
destination: file
path: “/mongodb/27017/log/mongodb.log” --日志位置
logAppend: true --日志以追加模式记录
–数据存储有关
storage:
journal:
enabled: true
dbPath: “/mongodb/data” --数据路径的位置
– 进程控制
processManagement:
fork: true --后台守护进程
–网络配置有关
net:
bindIp: 127.0.0.1 – 监听地址,如果不配置这行是监听在0.0.0.0
port: 27017 – 端口号,默认不配置端口号,是27017
– 安全验证有关配置
security:
authorization: enabled --是否打开用户名密码验证

  1. 关闭mongodb

[root@mgDB ~]$ mongod -f /mongodb/27017/conf/mongodb.conf --shutdown

  1. 使用配置文件启动mongodb

[root@mgDB ~]$ mongod -f /mongodb/27017/conf/mongodb.conf

  1. systemd 管理(root)

[root@mgDB ~]# cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongod
Type=forking
ExecStart=/mongodb/27017/bin/mongod --config /mongodb/27017/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/mongodb/27017/bin/mongod --config /mongodb/27017/conf/mongo.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

MongoDB常用基本操作

mongodb默认存在的库

>show databases
admin   0.000GB
config  0.000GB
local   0.000GB

查看当前db版本

> db.version()

显示当前数据库

> db
或
> db.getName()

查询所有数据库

> show dbs

切换数据库

> use local
switched to db local

显示当前数据库状态

> db.stats()

查看所有的collection

show  tables

查看当前数据库的连接机器地址

> db.getMongo()
connection to 127.0.0.1

创建数据库

use  dbname

当use的时候,系统就会自动创建一个数据库。如果use之后没有创建任何集合。系统就会删除这个数据库。

删除数据库
如果没有选择任何数据库,会删除默认的test数据库

test> use test
test> db.dropDatabase()   

创建集合

admin> use app
app> db.createCollection('a')
> show collections //查看当前数据下的所有集合3
或
> db.getCollectionNames()
方法2:当插入一个文档的时候,一个集合就会自动创建。
>use oldboy
oldboy> db.oldguo.insert({id : "1021" ,name : "zn" ,age : "22" ,gender : "female",address : "sz"})

查询数据

> db.oldboy.find({id:"101"}).pretty()
> db.oldboy.find().pretty()
app> db.log.findOne() //查看第1条记录
app> db.log.count() //查询总的记录数
app> db.log.totalSize() //集合中索引+数据压缩存储之后的大小

删除集合

app> use app
app> db.log.drop()

重命名集合

app> db.log.renameCollection("log1")

批量插入数据

for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":newDate()})}

用户管理

  1. 建用户时,use到的库,就是此用户的验证库

  2. 登录时,必须明确指定验证库才能登录

  3. 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库

  4. 如果直接登录到数据库,不进行use,默认的验证库是test
    创建用户

     use admin 
     mongo 10.0.0.51/admin
    
     db.createUser
     	{
     	user: "<name>",
      	pwd: "<cleartext password>",
     roles: [
    		{ role: "<role>",
     		 db: "<database>" } | "<role>",
     		...
     		 ]
     		}
    

基本语法说明:
user:用户名
pwd:密码
roles:
role:角色名
db:作用对象
role:root, readWrite,read
例:

use app
db.createUser(
{
	user: "app01",
	pwd: "app01",
	roles: [ { role: "readWrite" , db: "app" } ]
}
)

创建app数据库读写权限的用户并对test数据库具有读权限:

use app
db.createUser(
{
		user: "app03",
		pwd: "app03",
		roles: [ { role: "readWrite", db: "app" },
{ role: "read", db: "test" }]})

查询mongodb中的用户信息

db.system.users.find().pretty()

猜你喜欢

转载自blog.csdn.net/nmb_jiang/article/details/105679711