mongoDB

逻辑

库——-mysql库

集合——-mysql表

文档json——–数据行

安装mongoDB

1)redhat或centos6.2以上系统
(2)系统开发包完整
(3)ip地址和hosts文件解析正常
(4)iptables防火墙&SElinux关闭
(5)关闭大页内存机制
########################################################################
root用户下
在vi /etc/rc.local最后添加如下代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
sh  /etc/rc/local        
cat  /sys/kernel/mm/transparent_hugepage/enabled        
cat /sys/kernel/mm/transparent_hugepage/defrag
  • 下载
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
  • 创建用户和目录
useradd mongod
passwd mongod
mkdir -p /mongodb/conf
mkdir -p /mongodb/log
mkdir -p /mongodb/data
  • 解压文件配置环境变量
cd mongodb-linux-x86_64-rhel70-4.0.10
cp -r bin/ /mongodb/
chown -R mongod:mongod /mongodb/
su - mongod
vi .bash_profile
export PATH=/mongodb/bin:$PATH
source .bash_profile
  • 启动
mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork 
  • 登录
mongo
  • 配置文件
[mongod@node1 ~]$ cat /mongodb/conf/mongo.conf 
systemLog:
  destination: file
  path: "/mongodb/log/mongodb.log"     #日志位置
  logAppend: true            #日志已追加模式记录
storage:
  journal:
  enabled: true
  dbPath: "/mongodb/data/"       #数据目录
processManagement:
  fork: true                        #后台守护进程
net:
  port: 27017                      #端口
  bindIp: 192.168.57.3,127.0.0.1          #监听地址
  • 重启
mongod -f /mongodb/conf/mongo.conf --shutdown
mongod -f /mongodb/conf/mongo.conf
  • systemd启动
[mongod@node1 ~]$ cat /mongodb/conf/mongo.conf 
systemLog:
  destination: file
  path: "/mongodb/log/mongodb.log"     #日志位置
  logAppend: true            #日志已追加模式记录
storage:
  journal:
  enabled: true
  dbPath: "/mongodb/data/"       #数据目录
processManagement:
  fork: true                        #后台守护进程
net:
  port: 27017                      #端口
  bindIp: 192.168.57.3,127.0.0.1          #监听地址
systemctl restart mongod

常用的操作

show databases;    查看所有的库
 admin 0.000GB
 config 0.000GB
 local 0.000GB

admin库:系统预留库,MongoDB系统管理库
local库:本地预留库,存储关键日志
config库:MongoDB配置信息库
 > use admin;        使用这个库 如果不存在自动创建
 switched to db admin
 > show tables;      查看表
 system.version

集合的操作

创建一个集合
方式1
db.createCollection('a')

用户及权限认证

创建管理员用户

db.createUser({ user:"root", pwd:"123456", roles: [ {role:"root",db:"admin"}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

基本语法说明:

user:用户名
pwd:密码
roles:
    role:角色名
    db:作用对象 
role有以下三种:
root,    管理员 
readWrite,  读写
read      只读

启动安全认证,配置文件加入以下内容重启mongod

security:
  authorization: enabled

登录验证

第一种验证方式

[root@node1 ~]# mongo
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("68a613a0-9511-434f-bae1-618639df1dc5") }
MongoDB server version: 4.0.10
> show databases;   可以看到没授权之前查不到任何数据,然后我们开始认证
> use admin
switched to db admin
> db.auth('root','123456')
1
> show databases;
admin 0.000GB
config 0.000GB
jcwit 0.000GB
local 0.000GB

第二种验证方式

mongo -uroot -p123456 admin
mongo -uroot -p123456 192.168.57.3/admin

查看用户

db.system.users.find().pretty()
{
 "_id" : "admin.root",
 "userId" : UUID("0cde9fc8-8069-4ecf-8439-e9650e7c640b"),
 "user" : "root",
 "db" : "admin",
 "credentials" : {
 "SCRAM-SHA-1" : {
 "iterationCount" : 10000,
 "salt" : "dro9/DzODNL2gT/ZCgLJrQ==",
 "storedKey" : "spn1Y5jjsf8ZpxR+S0/nJecGKGo=",
 "serverKey" : "XpY0/zlZExEJnvKMrbEKLbcE6cY="
 },
 "SCRAM-SHA-256" : {
 "iterationCount" : 15000,
 "salt" : "zqSSyhRfUhGPt/U5hPJomZOI6L3guT+bJ1agnQ==",
 "storedKey" : "EnVbmPEogJPWmfP9OPAyts/Jycwx4PP78NR2Vf1iDrI=",
 "serverKey" : "5/4DDb6ecWtPrBMiVPb4Q7S46Gim5w9shRskKnbtAk8="
 }
 },
 "roles" : [
 {
 "role" : "root",
 "db" : "admin"
 }
 ]
}

创建普通管理用户

> use jcwit
switched to db jcwit
> db.createUser({user:"jcwit",pwd:"123",roles:[{role:"readWrite",db:"jcwit"}]})
Successfully added user: {
 "user" : "jcwit",
 "roles" : [
 {
 "role" : "readWrite",
 "db" : "jcwit"
 }
 ]
}
mongo -ujcwit -p123  jcwit  登录管理jcwit这个库

删除用户

> use jcwit
switched to db jcwit
> db.dropUser("jcwit")
true

mongoDB
http://www.jcwit.com/article/66/
作者
Carlos
发布于
2019年6月19日
许可协议