MongoDB 初探
安裝過程放在後面了
一、開啟Mongodb 密碼驗證功能
預設安裝完mongodb是不用密碼驗證的,直接輸入mongo就可以登入資料庫進行相關操作,設定引數auth=true啟動mongodb密碼驗證功能,開啟改功能步驟如下:
①、修改引數檔案auth=flase,並重啟mongodb
②、登入資料庫,建立管理員使用者(預設是沒有管理員賬戶的)
[root@mongodb ~] # mongo
> user admin
> db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "root", db: "admin" } ]
}
)
③、修改引數檔案auth=true,重啟資料庫,使用admin使用者登入資料庫
mongo 127.0.0.1:27017/admin(database) -u admin(username) -p admin(password)
或者
[root@mongodb ~] # mongo
> use admin
> db.auth("admin","admin");
二、使用者許可權管理
建立user文件,定義了使用者的以下形式:
create
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
user文件欄位介紹:
user欄位,為新使用者的名字;
pwd欄位,使用者的密碼;
cusomData欄位,為任意內容,例如可以為使用者全名介紹;
roles欄位,指定使用者的角色,可以用一個空陣列給新使用者設定空角色;
在roles欄位,可以指定內建角色和使用者定義的角色。
1. 資料庫使用者角色:read、readWrite;
2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級使用者角色:root
// 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system
示例:
db.createUser(
{
user: "admin1",
pwd: "admin1",
roles: [
{ role: "read", db: "mydb" }
]
}
)
db.createUser(
{
user: "admin1",
pwd: "admin1",
roles: [
{ role: "dbAdmin", db: "admin" },
{ role: "backup", db: "admin" }
]
}
)
查詢使用者資訊和刪除使用者
db.system.users.find();
db.system.users.remove({user:"pmsadapter"});
三、匯入匯出小結
匯出dbname下collectionname 表到 /home/area.dat
mongoexport -d dbname -c collectionname -o /home/area.dat
匯入
mongoimport -d dbname -c collectionname /home/area.dat
匯出iflashbuy_log資料庫/home/my_mongodb_dump
mongodump -d iflashbuy_log -o /home/my_mongodb_dump
恢復資料庫
mongorestore -d my_mongodb /home/my_mongodb_dump
安裝過程配置
mongodb下載地址 />
解壓安裝包,並建立data和log目錄
[root@59-Mysql-Test ~]# tar zxvf mongodb-linux-x86_64-3.0.6
[root@59-Mysql-Test ~]# mv mongodb-linux-x86_64-3.0.6 /usr/local/mongodb
[root@59-Mysql-Test ~]# mkdir /mongdb/data -p
[root@59-Mysql-Test ~]# mkdir /mongdb/log -p
[root@59-Mysql-Test ~]# cd /usr/local/mongodb/
[root@59-Mysql-Test mongodb]# pwd
/usr/local/mongodb
建立配置檔案
[root@59-Mysql-Test mongodb]# vi mongodb.cnf
port = 27017
logpath = /mongodb/log/mongodb59.log
logappend = true
dbpath = /mongodb/data
directoryperdb = true
auth = false
註冊服務linux
/lib/lsb/init-functions使定義在init-functions檔案中的所有shell函式在當前指令碼
[root@59-Mysql-Test bin]# yum install redhat-lsb
[root@59-Mysql-Test bin]# vi /etc/init.d/mongodb
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS="-f /usr/local/mongodb/mongodb.cnf"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
echo -n $"Starting mongod: "
daemon $mongod $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
}
stop()
{
echo -n $"Stopping mongod: "
killproc $mongod -QUIT
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
}
restart () {
stop
start
}
ulimit -n 12000
RETVAL=0
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
restart
;;
condrestart)
[ -f $lockfile ] && restart || :
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
esac
exit $RETVAL
[root@59-Mysql-Test ~]# service mongodb start
或者不註冊服務,直接路徑去操作啟動也可以
[root@59-Mysql-Test ~]# cd mongodb-linux-x86_64-3.0.6/bin
[root@59-Mysql-Test bin]# ./mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongo45.log --logappend&
或者
[root@59-Mysql-Test bin]# ./mongod -f /usr/local/mongodb/mongodb.cnf&
[root@59-Mysql-Test bin]# netstat -lanp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 22250/./mongod
unix 2 [ ACC ] STREAM LISTENING 1935507 22250/./mongod /tmp/mongodb-27017.sock
注意將註冊到開機啟動中
[root@59-Mysql-Test ~]# cat /etc/rc.local
.
.
.
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.cnf
MongoDB連線工具推薦:
MongoChef 首推
NoSQL Manager for MongoDB
MongoVUE
一、開啟Mongodb 密碼驗證功能
預設安裝完mongodb是不用密碼驗證的,直接輸入mongo就可以登入資料庫進行相關操作,設定引數auth=true啟動mongodb密碼驗證功能,開啟改功能步驟如下:
①、修改引數檔案auth=flase,並重啟mongodb
②、登入資料庫,建立管理員使用者(預設是沒有管理員賬戶的)
[root@mongodb ~] # mongo
> user admin
> db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "root", db: "admin" } ]
}
)
③、修改引數檔案auth=true,重啟資料庫,使用admin使用者登入資料庫
mongo 127.0.0.1:27017/admin(database) -u admin(username) -p admin(password)
或者
[root@mongodb ~] # mongo
> use admin
> db.auth("admin","admin");
二、使用者許可權管理
建立user文件,定義了使用者的以下形式:
create
{ user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
}
user文件欄位介紹:
user欄位,為新使用者的名字;
pwd欄位,使用者的密碼;
cusomData欄位,為任意內容,例如可以為使用者全名介紹;
roles欄位,指定使用者的角色,可以用一個空陣列給新使用者設定空角色;
在roles欄位,可以指定內建角色和使用者定義的角色。
1. 資料庫使用者角色:read、readWrite;
2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級使用者角色:root
// 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system
示例:
db.createUser(
{
user: "admin1",
pwd: "admin1",
roles: [
{ role: "read", db: "mydb" }
]
}
)
db.createUser(
{
user: "admin1",
pwd: "admin1",
roles: [
{ role: "dbAdmin", db: "admin" },
{ role: "backup", db: "admin" }
]
}
)
查詢使用者資訊和刪除使用者
db.system.users.find();
db.system.users.remove({user:"pmsadapter"});
三、匯入匯出小結
匯出dbname下collectionname 表到 /home/area.dat
mongoexport -d dbname -c collectionname -o /home/area.dat
匯入
mongoimport -d dbname -c collectionname /home/area.dat
匯出iflashbuy_log資料庫/home/my_mongodb_dump
mongodump -d iflashbuy_log -o /home/my_mongodb_dump
恢復資料庫
mongorestore -d my_mongodb /home/my_mongodb_dump
安裝過程配置
mongodb下載地址 />
解壓安裝包,並建立data和log目錄
[root@59-Mysql-Test ~]# tar zxvf mongodb-linux-x86_64-3.0.6
[root@59-Mysql-Test ~]# mv mongodb-linux-x86_64-3.0.6 /usr/local/mongodb
[root@59-Mysql-Test ~]# mkdir /mongdb/data -p
[root@59-Mysql-Test ~]# mkdir /mongdb/log -p
[root@59-Mysql-Test ~]# cd /usr/local/mongodb/
[root@59-Mysql-Test mongodb]# pwd
/usr/local/mongodb
建立配置檔案
[root@59-Mysql-Test mongodb]# vi mongodb.cnf
port = 27017
logpath = /mongodb/log/mongodb59.log
logappend = true
dbpath = /mongodb/data
directoryperdb = true
auth = false
註冊服務linux
/lib/lsb/init-functions使定義在init-functions檔案中的所有shell函式在當前指令碼
[root@59-Mysql-Test bin]# yum install redhat-lsb
[root@59-Mysql-Test bin]# vi /etc/init.d/mongodb
#
#mongod - Startup script for mongod
#
# chkconfig: - 85 15
# description: Mongodb database.
# processname: mongod
# Source function library
. /etc/rc.d/init.d/functions
# things from mongod.conf get there by mongod reading it
# OPTIONS
OPTIONS="-f /usr/local/mongodb/mongodb.cnf"
#mongod
mongod="/usr/local/mongodb/bin/mongod"
lockfile=/var/lock/subsys/mongod
start()
{
echo -n $"Starting mongod: "
daemon $mongod $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
}
stop()
{
echo -n $"Stopping mongod: "
killproc $mongod -QUIT
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
}
restart () {
stop
start
}
ulimit -n 12000
RETVAL=0
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
restart
;;
condrestart)
[ -f $lockfile ] && restart || :
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
esac
exit $RETVAL
[root@59-Mysql-Test ~]# service mongodb start
或者不註冊服務,直接路徑去操作啟動也可以
[root@59-Mysql-Test ~]# cd mongodb-linux-x86_64-3.0.6/bin
[root@59-Mysql-Test bin]# ./mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongo45.log --logappend&
或者
[root@59-Mysql-Test bin]# ./mongod -f /usr/local/mongodb/mongodb.cnf&
[root@59-Mysql-Test bin]# netstat -lanp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 22250/./mongod
unix 2 [ ACC ] STREAM LISTENING 1935507 22250/./mongod /tmp/mongodb-27017.sock
注意將註冊到開機啟動中
[root@59-Mysql-Test ~]# cat /etc/rc.local
.
.
.
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.cnf
MongoChef 首推
NoSQL Manager for MongoDB
MongoVUE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1805437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB初探MongoDB
- MongoDB使用初探MongoDB
- MongoDB初探第二篇MongoDB
- mongoDB初探第一篇MongoDB
- Deno 初探
- ELK初探
- Nginx 初探Nginx
- Mobx 初探
- jQuery初探jQuery
- 初探IndexedDBIndex
- 初探PWA
- Puppeteer 初探
- Redis初探Redis
- 初探Firewalld
- Serverless初探Server
- Promise初探Promise
- Quantum 初探
- 初探TCPTCP
- ## RATreeView 初探View
- puppeteer初探
- Quartz初探quartz
- MapDB初探
- Vue初探Vue
- Docker初探Docker
- angr初探
- Gitee初探Gitee
- 初探canvasCanvas
- pointerEvent 初探
- websoctet初探Web
- RxJava 初探RxJava
- GoLang初探Golang
- Django初探Django
- orm初探ORM
- 初探 TypeScriptTypeScript
- ECharts 初探Echarts
- 初探websocketWeb
- zookeeper初探
- ARKit 初探