在linux環境安裝mongoDB:
一般認為偶數版本為穩定版 如 1.6.x,奇數版本為開發版如1.7.x
32bit的mongoDB最大能存放2g的數據,64bit沒有限制
方法1:
終端執行:
安裝服務器: sudo apt install mongodb-server
安裝客戶端: sudo apt install mongodb-clients
方法2:
1 官網下載合適版本
2 解壓: tar -zxvf 安裝壓縮包 ./mongodb
3 到/user/local/目錄下: rm mongodb /user/local/mongodb
4 添加可執行文件到path路徑: export PATH=/usr/local/mongodb/bin:$PATH
MongoDB:
MongoDB是一中非關系型數據庫(NoSql)。
NoSql的特性:
易擴展: NoSQL有很多種,有一個共同特點就是去掉關系數據庫的關系特性,數據之間無關系,易於擴展。
高性能: 在大數據量下,有很優秀的讀寫性能,因為數據庫的結構簡單。
靈活性:無須事先建立字段、表。如果數據量非常大,字段非常多,建表很苦難。
高可用: 在不太影響性能的情況,可以方便的實現高可用的架構。
MongoDB三元素:
1 數據庫: 和關系型數據庫中數據庫的層次相同,內部可以有多個集合。
2 集合: 相當於關系型數據庫中的表,存儲若干文檔,結構不固定
3 文檔: 相當於關系型數據庫中的行,是Json擴展的Bson類型鍵值對數據
服務器:
啟動服務器: sudo service mongod start
停止服務器: sudo service mongod stop
重啟服務器: sudo service mongod restart
有些linux系統是 sudo service mongodb start/stop/restart
客戶端:
連接服務器:
mongo
查看參數:
mongo --help
退出mongo服務:
exit 或 ctr + c
查看當前使用數據庫(登錄后默認使用test數據庫):
db
查看所有數據庫(物理真實創建出來的數據庫):
show dbs
切換數據庫(use不存在的庫會在內存中臨時建庫,之后創建集合文件會自動在物理上創建這個數據庫):
use 庫名
刪除當前使用的數據庫(如果數據庫不存在就什么也不做):
db.dropDatabase()
備份:(不登錄mongodb,在終端上操作)
mongodump -h 主機ip:端口 -d 數據庫名 -o 備份到目錄
-h 服務器地址,如果是本地localhost可以省略,如果端口是默認也可以省略
-d 要備份的數據庫名
-o 要備份到的目錄
恢復:(不登錄mongodb,在終端上操作)
mongorestore -h 主機ip:端口 -d 恢復后的數據庫名 --dir 恢復源文件目錄
-h 服務器地址
-d 恢復后的數據庫名
--dir 恢復源文件的目錄
賬戶管理(建議不要開啟認證,否則會非常麻煩):
常用的的系統角色有:
root: 只在 admin 數據中可使用,超級賬戶,超級權限
Read: 允許用戶讀取指定的數據庫
readWrite: 允許用戶讀寫指定的數據庫
創建超級用戶:
use admin
db.createUser(
{
user: 'admin',
pwd: '123',
roles:[{role:'root',db:'admin'}]
}
)
啟用安全認證:
1 修改配置文件:
sudo vi /etc/mongod.conf
在文件中找到security: authorization disabled
把disabled 改成 enabled
2 重啟服務
sudo service mongod restart
有些系統是:sudo service mongodb restart
3 認證登錄:
mongo -u admin -p 123 --authenticationDatabase admin
創建普通用戶:(指定數據庫和權限)
db.createUser(
{
user: 'demouser',
pwd: '123',
roles:[{role:'readWrite',db:'demo'}]
}
)
查看數據庫的用戶:
show users
啟用安全認證后普通用戶登錄:
mongo -u 用戶名 -p 密碼 --authenticationDatabase 數據庫
修改密碼:
db.updateUser("用戶名",{pwd:"新密碼"})
修改屬性:
db.updateUser('用戶名',{roles:[{role: '權限',db:'數據庫'}]})