MongoDB非关系型数据库的简介、创建数据库和表、配置用户等

简介:

MongoDB是一个高性能,开源,无模式的文档型数据库,是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,是当前NoSQL数据库产品中最热门的一种。

mongodb的结构和普通的关系型数据库的结构也有相似之处,

mongdb的database相当于关系型数据库的database;

mongdb的collection相当于关系型数据库的table;

mongdb的document相当于关系型数据库的row;

上一篇我们说了mongodb远程连接配置,今天给大家说下mongodb怎么创建数据库和配置用户,毕竟光有远程连接是不够的,我们还要上去操作和放数据的.
  系统:centos 5.x
  环境:mongodb
1.安装mongodb
这步就不说了,大家自己去看Centos安装MongoDB.

2.创建数据库
use tt
这样就创建了一个数据库,如果什么都不操作离开的话,这个库就会被系统删除.所以我们还要执行下面的命令:
db.usr.insert({'name':'tompig'});
db.usr.insert({'name':'tompig1','id':1});

我是随便整了2个表,这个无所谓的,反正要导入表的话就删除掉这2个就可以了,目前我们只是想让数据库保持住.

然后使用命令查看是否有保存tt这个数据库:
show dbs

3.配置用户
use tt
db.addUser('mongodb','123456');

mongodb是用户名,123456是密码.

好了,这样一个数据库和对这个数据库配置用户就完成了.

mongodb常用命令:
1、Help查看命令提示

 help

  db.help();

  db.yourColl.help();

  db.youColl.find().help();

  rs.help();

2、切换/创建数据库

 use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库

3、查询所有数据库

 show dbs;

4、删除当前使用数据库

 db.dropDatabase();

5、从指定主机上克隆数据库

 db.cloneDatabase(“127.0.0.1”); 将指定机器上的数据库的数据克隆到当前数据库

6、从指定的机器上复制指定数据库数据到某个数据库

 db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中

7、修复当前数据库

 db.repairDatabase();

8、查看当前使用的数据库

 db.getName();

 db; db和getName方法是一样的效果,都可以查询当前使用的数据库

9、显示当前db状态

 db.stats();

10、当前db版本

 db.version();

11、查看当前db的链接机器地址

 db.getMongo();

Collection聚集集合

1、创建一个聚集集合(table)

 db.createCollection(“collName”, {size: 20, capped: 5, max: 100});

2、得到指定名称的聚集集合(table)

 db.getCollection("account");

3、得到当前db的所有聚集集合

 db.getCollectionNames();

4、显示当前db所有聚集索引的状态

 db.printCollectionStats();

 用户相关

1、添加一个用户

 db.addUser("name");

 db.addUser("userName", "pwd123", true); 添加用户、设置密码、是否只读

2、数据库认证、安全模式

 db.auth("userName", "123123");

3、显示当前所有用户

 show users;

4、删除用户

 db.removeUser("userName");

其他

1、查询之前的错误信息
 db.getPrevError();
2、清除错误记录
 db.resetError();

~~~~~~~~~~~~~~~~~

默认不需要帐号密码,在/etc/mongodb.conf中设置auth = true后重启开启帐号权限功能。

1,创建admin的超级权限: mongo 

use admin; db.addUser('root','sa') 增加了root帐号,这个时候执行show collections;提示没有权限,必须先执行db.auth('root','sa') ,返回1说明验证成功!返回0说明验证失败! 直接登陆其他表时,必须先use admin;db.auth('root','sa'),再执行use keke;show collections;否则还是没有权限。

2,如果想单独访问一个表,用独立的用户名,就需要在那个表里面建相应的user。 mongo登陆,

use admin;db.auth('root','sa');

use keke;db.addUser('keke','test') ; 这个时候可以直接用keke帐号登陆keke数据库

mongo use keke;db.auth("keke","test");show collections;正确。

原文网址:https://www.cnblogs.com/jimcsharp/p/5597980.html
上一篇:Nagios插件开发之监控服务器负载


下一篇:WindowsAzure Powershell脚本定时启动关机Azure VM