您好,登錄后才能下訂單哦!
下載二進制包:
#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.15.tgz
#tar xf mongodb-linux-x86_64-3.0.15.tgz
#cd mongodb-linux-x86_64-3.0.15
創建數據存放路徑、日志存放路徑、程序路徑
#mkdir /data/mongodata -p
#mkdir /data/log/mongolog -p
#mkdir /data/mongo -p
將當前所有文件復制
#cp -r * /data/mongo
配置環境變量
#more /etc/profile.d/mongodb.sh
export PATH=$PATH:/data/mongo/bin
#source /etc/profile.d/mongodb.sh
配置mongodb配置文件
#cd /data/mongo/bin/
#vim mongodb.conf
#數據文件存放目錄
dbpath = /data/mongodata
#日志文件存放目錄
logpath = /data/log/mongolog/mongodb.log
#端口
port = 27017
#以守護程序的方式啟用,即在后臺運行
fork = true
nohttpinterface = true
確定服務
#mongod --dbpath=/data/mongodata --logpath=/data/log/mongolog/mongodb.log --logappend --fork
通過配置文件啟動
#mongod -f /root/mongodb/bin/mongodb.conf
測試
#mongo
MongoDB shell version: 3.0.15
connecting to: test
show dbs
local 0.078GB
quit()
WARNING: Readahead for /data/mongodata is set to 4096KB
WARNING: You are running this process as the root user, which is not recommended.
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
We suggest setting it to 'never'
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
We suggest setting it to 'never'
WARNING: soft rlimits too low. rlimits set to 3802 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files.
啟動有警告,去掉
#vim /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
ulimit -u 65535
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
#echo never > /sys/kernel/mm/transparent_hugepage/defrag
#runlevel
#chmod +x /etc/rc.local
文件限制數調整
#vim /etc/security/limits.conf
use admin
switched to db admin
db.shutdownServer();
配置啟動服務
#vim /usr/lib/systemd/system/systemd-mongodb.service
[Unit]
Description=mongodb
After=network.target
[Service]
Type=forking
PIDFile=/data/mongodata/mongod.lock
ExecStart=/data/mongo/bin/mongod -f /data/mongo/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
開啟機器
#systemctl enable systemd-mongodb
進入查看數據庫,只有一個local庫,admin庫是不存在的
show dbs
local 0.078GB
show tables;
新建賬號具有grant權限,即:賬號管理的授權權限
use admin
switched to db admin
db.createUser(
... {
... user:"dba",
... pwd: "dba",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "dba",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
show dbs;
admin 0.078GB
local 0.078GB
user:用戶名
pwd:密碼
roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role里的角色可以選:
Built-In Roles(內置角色):
Mongodb中 數據庫和集合的創建與刪除
插數據
show dbs //查詢所有的數據庫
admin 0.078GB
cmz 0.078GB
local 0.078GB
show collections //查詢所有的集合(表)等同于show tables
創建數據庫或切換到數據庫(存在就切換,不存在就創建)
use cmz
switched to db cmz
創建集合,刪除集合(一般可以不用創造集合,在插入數據時自動可以創建集合):
db.createCollection('col') //創建集合
{ "ok" : 1 }
show collections
col
db.col.drop() //刪除集合
true
5、備份
-h 指明數據庫宿主機的IP
--port 指明數據庫的端口
-u 指明數據庫的用戶名
-p 指明數據庫的密碼
-d 指明數據庫的名字
-c 指明collection的名字
-o 指明到要導出的文件名
-q 指明導出數據的過濾條件
--authenticationDatabase 驗證數據的名稱
--gzip 備份時壓縮
--oplog use oplog for taking a point-in-time snapshot
全庫備份
mongodump -h 10.0.0.4 --authenticationDatabase admin -o /mnt/
備份cmz庫
mongodump -h 10.0.0.4 --authenticationDatabase admin -d cmz -o /mnt1/
備份cmz庫的col集合
mongodump -h 10.0.0.4 --authenticationDatabase admin -d cmz -c col -o /mnt2/
創建test庫
use test
switched to db test
db.createUser(
... {
... user: "jrw",
... pwd: "jrw",
... roles: [
... { role: "readWrite", db: "test" }
... ]
... }
... )
Successfully added user: {
"user" : "jrw",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
show users;
{
"_id" : "test.jrw",
"user" : "jrw",
"db" : "test",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
參考文檔:
https://blog.51cto.com/xiaorenwutest/2137022
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。