mongodb基础操作

mongodb

mongodb属于非关系型数据库,现在很多企业都拥有非关系型数据库,主要是因为非关系型数据库更适合现在广大客户的上网需求。
mongodb属于非关系型数据库的其中一种,它可以在官网上进行下载,同样也可以通过yum库下载。

mongodb基础操作

1)yum下载mongodb,yum -y install mongodb-org,在此之前建议上华为或者阿里云上更换一下镜像源

vim /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1

yum install -y mongodb-org

2)由于mongodb首先自带大页内存,如果要更改数据库配置文件而不出错,在此之前需要更改配置文件vim /etc/rc.local,在后续追加以下内容,关闭大页内存。

echo 0 > /proc/sys/vm/zone_reclaim_mode echo never >
/sys/kernel/mm/transparent_hugepage/enabled echo never >
/sys/kernel/mm/transparent_hugepage/defrag

而后保存跳出输入sh /etc/rc.local刷新配置文件,进而就可以对配置文件进行更改。
3)启动数据库

systemctl start mongod
systemctl enable mongod

使用curl命令来查看数据库是否启动成功

curl http://localhost:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.
出现上述命令串后,证明已经启动成功了

4)默认启动命令:mongo
mongodb基础操作

此为查看库的命令,也可以使用show dbs来查看,查看库的命令和show dtaabses;是一样的,进入admin的库之后,查看表的命令中show tables;和show collections;命令也是一样的。
mongodb基础操作

5)
日志存储位置:
               path: /var/log/mongodb/mongod.log
数据存储位置:
              dbPath: /var/lib/mongo

6)创建表格,mongodb的创建表格很简单,不需要先创建表格,也不需要设定格式,只需要进行格式的插入,那么如果该库中没有同名的表格,就会自动创建一个表格。

> use xiaoyang;	(创建xiaoyang表格) db.xiaoyangtable.insert({键:值})		插入一条表格
> db.xiaoyangtable.find()			查找表格
> db.xiaoyangtable.update({要修改的键:要修改的值},{修改的键:修改的值})	修改表格的数据
> db.xiaoyangtable.remove({id:2})	选定表格行中的关键键,可以直接删除拥有该关键键的行
> db.dropdatabases		删除库 db.dropDatabase();		删除当前所在库的表格 cls		清屏

导入导出

1)批量创建信息,利用for循环
for(i=1;i<=1000;i++){db.xiaolang.insert({id:i,name:‘alice’})};
而后使用db.xiaolang.find(),会发现只会出现20行,这是因为数据库默认只会出现20行

2)导出数据

mongoexport -d test -c 表格 -o 储存位置/表名.json
mongoexport -dxiaoyang -cxiaolang -o /opt/xiaolang.json
可以进入存储的地方查看该文件:

mongodb基础操作

3)导入数据,模拟数据表格丢失:

db.dropDatabase();

4)在linux操作界面输入:

`mongoimport -dxiaoyang -cxiaolang --file /opt/xiaolang.json`

mongodb基础操作

5)导出id大于500的数据:

mongoexport -dxiaoyang -cxiaolang -q'{"id":{"$gt":500}}' -o /opt/xiaolang.json

6)删除表格重新导入数据,并进行查看
mongodb基础操作

可以看到都是从500开始了

备份

mongodump -h 127.0.0.1:27017 -d 备份的库 -o /opt/进行进行备份
mongorestore -h127.0.0.1:27017 -d 库名(创建的新库名) --dir=/opt/备份之后的名字
进行查看是否有一个一模一样的库:

mongodb基础操作

克隆

即复制一个备份的配置文件,在进行名字,端口的修改之后开启该配置文件,即可进行端口的连接

1)复制/etc/mongo.conf创建一个新文件/etc/mongo1.conf

2)更改以下内容为新的Mongo的名字和新的端口号
mongodb基础操作
mongodb基础操作

3)保存退出之后,cp -rf /var/lib/mongo /var/lib/mongo1
4)输入mongod -f /etc/mongod1.conf 命令开启mongo1数据库
5)直接输入mongo会默认登录端口号27017的端口,想登录另外一个克隆的数据库可以输入 mongo --port 端口号
监控
1)修改配置文件,vim /etc/mongo.conf
mongodb基础操作

2)输入mongod -f /etc/mongod.conf --shutdown
3)输入mongod -f /etc/mongod.conf --httpinterface 如果不修改配置文件就是临时开启
4)输入netstat -ntl查看,会发现多出来一个端口:
mongodb基础操作

5)在浏览器中登录进行访问:自身ip地址+28017端口号
mongodb基础操作

6)进程管理
查看当前正在运行的进程

db.currentOp()
杀死高消耗的进程
db.killOp(268)

“小驼峰” killOp
“大驼峰” StudentOp

授权
1)创建管理用户,有了端口号之后,需要指定ip地址和端口号才可以进行登录

mongo --host 192.168.53.110:27017
db.createUser(
  {
    user: "用户名",
    pwd: "密码",
    roles: [ { role: "root", db: "管理库名" } ]
  }
)
db.createUser({user:"root",pwd:"123",roles:[{role:"root",db:"admin"}]})

2)创建普通用户,只能在当前所在库创建时的用户名才能进行管理

db.createUser({user:"用户名",pwd:"密码",roles:[{role:"readWrite(读写)",db:"管理库名"}]})

db.createUser({user:"xiaoyang",pwd:"123",roles:[{role:"readWrite",db:"xiaoyang"}]})


3)验证

db.auth(“robin”,“123”)
1
备注:返回值为1说明验证成功

4)开启用户验证
配置/etc/mongo.conf文件中,加入以下配置

security:
  authorization: enabled

5)验证用户
方式1:

[root@localhost ~]# mongo --host 192.168.100.10:27017

此刻输入任何命令都会报错显示没有权限,这是需要进入到设定管理的相应的库中进行

db.auth(“robin”,“123”);
如果显示结果为1则可以在该库进行相应的操作

方式2:
[root@localhost ~]# mongo -uroot -proot 192.168.100.10:27017
管理账号可以使用任何的权限,所以可以管理任何的库

6)删除账号robin,需要用到管理账号才可以进行相应的删除

> db.dropUser("robin");
false
> use kgc
switched to db kgc
> db.dropUser("robin");
true
上一篇:kettle之mysql数据导入mongo


下一篇:Centos 7 安装mongo、配置、开机启动、远程连接