MongoDB非關係型資料庫的簡介、建立資料庫和表、配置使用者等
簡介:
MongoDB是一個高效能,開源,無模式的文件型資料庫,是一個基於分散式檔案儲存的資料庫,是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的,是當前NoSQL資料庫產品中最熱門的一種。
mongodb的結構和普通的關係型資料庫的結構也有相似之處,
mongdb的database相當於關係型資料庫的database;
mongdb的collection相當於關係型資料庫的table;
mongdb的document相當於關係型資料庫的row;
上一篇我們說了mongodb遠端連線配置,今天給大家說下mongodb怎麼建立資料庫和配置使用者,畢竟光有遠端連線是不夠的,我們還要上去操作和放資料的.
系統:centos 5.x
環境:mongodb
1.安裝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