mongodb安裝配置以及其他基礎操作
tar -zxf mongodb-linux-x86_64-v3.6.3.tgz
cp -pr mongodb-linux-x86_64-v3.6.3 /usr/local/mongodb
mkdir -p /data/mongodb/logs
touch /data/mongodb/logs/mongodb.log
vi /data/mongodb/bin/mongodb.conf
dbpath=/data/mongodb/data
logpath=/data/mongodb/logs/mongodb.log
port=27017
fork=true
auth=true
logappend=true
nojournal=true
nohttpinterface=true
/usr/local/mongodb/bin/mongod --bind_ip 172.31.31.63 -f /usr/local/mongodb/conf/mongodb.conf
echo "export PATH=/usr/local/mongodb/bin:$PATH" >> /etc/profile
source /etc/profile
連接到mongodb:
mongo 172.31.31.63:27017
show dbs //查看數據庫
use admin
show users //查看用戶
db.createUser({user:"admin",pwd:"123456",roles:["root"]}); //創建超級管理員用戶
db.createUser({user:"USRADM",pwd:"123456",roles:[ "userAdminAnyDatabase"]}); //創建用戶管理員賬戶
db.changeUserPassword('admin','147258');
db.dropUser('admin') //刪除用戶
db.auth("admin","147258"); //admin登錄認證
db.auth("USRADM","123456"); //USRADM登錄認證
#############################################################################################
內建角色
1、數據庫用戶角色
read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
2、數據庫管理員角色
dbAdmin:允許用戶進行索引創建、刪除,查看統計或訪問system.profile,但沒有角色和用戶管理的權限
userAdmin:提供了在當前數據庫中創建和修改角色和用戶的能力
dbOwner: 提供對數據庫執行任何管理操作的能力。這個角色組合了readWrite、dbAdmin和userAdmin角色授予的特權
3、集群管理角色
clusterAdmin : 提供最強大的集群管理訪問。組合clusterManager、clusterMonitor和hostManager角色的能力。還提供了dropDatabase操作
clusterManager : 在集群上提供管理和監視操作。可以訪問配置和本地數據庫,這些數據庫分別用於分片和復制
clusterMonitor : 提供對監控工具的只讀訪問,例如MongoDB雲管理器和Ops管理器監控代理
hostManager : 提供監視和管理服務器的能力。
4、備份恢復角色
backup : 提供備份數據所需的能力,使用MongoDB雲管理器備份代理、Ops管理器備份代理或使用mongodump
restore : 提供使用mongorestore恢復數據所需的能力
5、所有數據庫角色
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限
6、超級用戶角色
root:提供對readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、restore和backup的所有資源的訪問
7、內部角色
__system : 提供對數據庫中任何對象的任何操作的特權
#############################################################################################
//創建用戶BackupUser,並賦予備份恢復角色
db.createUser({user: "BackupUser",pwd: "123456",roles: [
{ role: 'backup', db: 'admin' },
{ role: 'restore', db: 'admin' }
]});
use students //創建數據庫
db.createUser({user: "user1",pwd: "user123456",roles: [ { role: "readWrite", db: "students" } ]}); //創建students庫讀寫權限用戶
db.auth("user1","user123456");
db.clas.insert({"name":"wang"}); //向clas集合(表)插入3條數據
db.clas.insert({"name":"zhang"});
db.clas.insert({"name":"li"});
db.clas.remove({}); //刪除clas集合裏面所有數據記錄
db.clas.find(); //查詢clas集合裏面所有數據記錄
db.clas.drop(); //刪除clas集合(表)
show collections; //查看集合(表)
db.dropDatabase(); //刪除數據庫
導出students庫的數據:
mongodump -h 172.31.31.63:27017 --authenticationDatabase admin -d students -u BackupUser -p -o /root/test/
-h 主機IP:端口
-d 要備份的庫
-u 具有backup角色的用戶
-p 備份用戶的密碼
-o 備份目錄路徑
--authenticationDatabase 備份用戶BackupUser所屬的數據庫
導入students庫的數據:
mongorestore -h 172.31.31.63:27017 --authenticationDatabase admin -d students -u BackupUser -p --directoryperdb /root/test/students
-h 主機IP:端口
-d 恢復的目標庫
-u 具有restore角色的用戶
-p 恢復用戶的密碼
--directoryperdb 恢復目錄路徑
--authenticationDatabase 恢復用戶BackupUser所屬的數據庫
需要註意的坑:
1.認證問題,比如上面我有一個admin用戶,只有use admin切換到admin庫下面才能認證成功。
2.比如我上面已經創建了一個USRADM用戶並賦予了相應的角色,當前這個角色它具有賦予用戶所有數據庫的userAdmin權限。現在我想為students庫創建一個用戶且分配置userAdmin角色。此時若我在admin庫下面執行則會失敗,必須切換到students庫下面操作才能成功。
3.備份恢復角色的用戶只能在admin庫下創建,創建完後可以執行備份恢復其他所有庫。
!!!切記執行任何庫的操作時都必須先切換到對應的庫下面
mongodb安裝配置以及其他基礎操作