共享单车项目(三)--Centos7安装mongodb数据库(单机)

mongdb一个NoSQL数据库,里面存储的是BSON(Binary Serialized Document Format,支持集群,高可用、可扩展。

mongdb中的一些概念(和MySQL的一些区别)

MongoDBMySQL
databasedatabase
collectiontable
json二维表
不支持SQLSQL
_id主键

安装


前期准备工作

#创建一个普通用户XXX

useradd XXX

#为hadoop用户添加密码:

echo 123456 | passwd --stdin XXX

#将bigdata添加到sudoers

echo "XXX ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/XXX

chmod 0440 /etc/sudoers.d/XXX

#解决sudo: sorry, you must have a tty to run sudo问题,在/etc/sudoer注释掉 Default requiretty 一行

sudo sed -i 's/Defaults    requiretty/Defaults:XXX !requiretty/' /etc/sudoers

#配置mongo的yum源

sodu vim /etc/yum.repos.d/mongodb-org-3.4.repo

添加如下内容:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

#关闭selinux

sudo vim /etc/sysconfig/selinux

SELINUX=disabled

#重新启动
sudo reboot


mongodb的安装和基本使用

#在机器上使用XXX用户登录(如果本地安装已经有了rpm包,使用命令rpm -ivh *.rpm安装)

sudo yum install -y mongodb-org

#修改mongo的配置文件

sudo vi /etc/mongod.conf 
注释掉bindIp或者修改成当前机器的某一个ip地址

#启动mongo

sudo service mongod start

#连接到mongo
#如果注释掉了bindIp,那么连接时用

mongo

#如果指定了ip地址,使用

mongo --host IP地址 --port 27017

#使用或创建database

use databasename

#创建集合(表)

db.createCollection("tablename")

#插入数据

db.tablename.insert({"_id": 100001, "status": 1, "desc": "test"})
db.tablename.insert({"_id": 100002, "status": 1, "desc": "test"})

#查找数据(所有)

db.tablename.find()

#退出

exit

#关闭mongo服务

sudu service mongod stop

#设置服务开机启动

sudo chkconfig mongod on

#设置mongo服务开机不启动

sudo chkconfig mongod off

mongo安全认证配置

如果修改了mongo存储是的目录那么一定要修改该目录的所属用户和组为mongod

#chown -R mongod:mongod  /mongo/

#添加管理员用户
#使用admin这个database

use admin

#在没有开启认证的情况下,创建一个超级用户

db.createUser(
     {
       user: "username",
       pwd: "userpwd",
       roles: [ {role: "root", db: "admin" }]
     }
)

#修改mongo的配置文件/etc/mongod.conf,配置mongo的安全认证

注意:authorization: enabled前面一定要空两格

security:
  authorization: enabled

#重启mongo服务

service mongod restart

#重新使用mongo shell连接

mongo

#使用admin database

use admin

#授权登录

db.auth("username", "userpwd")

#创建一个bike数据库

use bike

#添加一个普通用户,具备读写权限

db.createUser(
     {
       user: "username",
       pwd: "userpwd",
       roles: ["readWrite"]
     }
)

#使用刚刚创建的用户登录

mongo
use bike
db.auth("username", "userpwd")

#在database下创建collection

db.createCollection("users")
db.createCollection("bikes")

#插入数据

db.users.insert( { name: "laowang", age: 30 } )

#查找(查找全部)

db.users.find()

#更新数据(修改数据)

db.users.update({'name':'laowang'},{$set:{'age': 18}},{multi:true})

#删除数据

db.users.remove({'name': 'laowang'})
db.users.remove({'name': 'laowang'}, 1)

#查看当前db的索引

db.logs.getIndexes()

#创建索引

db.logs.ensureIndex({"name":1})

#删除索引

db.logs.dropIndex({"name":1})

数据库用户角色:read、readWrite; 数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值