一、安裝
把mongodb安裝包上傳到服務器,然後解壓縮
# tar zxvf mongodb-linux-x86_64-rhel70-4.2.8.tgz
# mv mongodb-linux-x86_64-rhel70-4.2.8 /usr/local/mongodb
cd /usr/local/mongodb
# vi /etc/profile.d/mongo.sh
export MONGO_HOME=/usr/local/mongodb
export PATH=$MONGO_HOME/bin:$PATH
# source /etc/profile
# mkdir -p /data/mongodb/db/
# mkdir -p /data/mongodb/log/
# cd /data/mongodb/
二、編輯配置文件
可以這樣啓動(但是不推薦): ./mongod --port=27017 --host=127.0.0.1 --dbpath=/data/db --logpath=/data/log/mongo.log --fork=true
推薦使用配置文件的方式啓動mongodb
# vi /etc/mongod.conf
dbpath=/data/mongodb/db
logpath=/data/mongodb/log/mongod.log
bind_ip=127.0.0.1
port=27017
fork=true #以守護進程的方式運行,創建服務器進程
journal=true #每次寫入會記錄一條操作日誌(通過journal可以重新構造出寫入的數據)
三、創建mongod用戶
groupadd mongod
useradd mongod -g mongod
chown -R mongod:mongod /data/mongodb/
然後切換到mongod啓動
# su mongod
$ mongod -f /etc/mongod.conf 非auth啓動,創建用戶
$ mongo
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "dbAdmin", db: "crm" } ]
}
)
也可以創建其他用戶,內建的role參見 https://docs.mongodb.com/manual/core/security-built-in-roles/
管理員登錄,然後切換到這個庫下
use crm
db.createUser(
{
user: "crm",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "crm" }]
}
)
//也可以修改用戶的角色
db.updateUser("admin",{roles:[{"role":"root","db":"admin"}]});
//也可以修改用戶的密碼
db.updateUser("admin",{pwd:"此處忽略"});
use test
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)
db.shutdownServer()
quit()
vi /etc/mongod.conf 添加
auth=true
#綁定的IP,0.0.0.0標示任何ip都可以訪問,127.0.0.1標示本機訪問
bind_ip=127.0.0.1
# su mongod
$ mongod -f /etc/mongod.conf 開啓授權後,用授權的用戶訪問
> use admin
> db.auth("myUserAdmin", "abc123")
參考資料:
https://docs.mongodb.com/manual/reference/configuration-options/
https://docs.mongodb.com/manual/tutorial/enable-authentication/
其他語法
mongod --port 27017 --dbpath /data/db1
mongo --port 27017 --host 127.0.0.1
四、開機自啓動
設置開機自啓動服務, 編寫自定義服務
vi /lib/systemd/system/mongod.service
[Unit]
Description=mongod
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# chmod 754 mongod.service
# systemctl start mongod.service 啓動服務
# systemctl stop mongod.service 關閉服務
# systemctl enable mongod.service 開機啓動
忘記了mongdb的用戶密碼怎麼辦?
# vi /etc/mongod.conf 將 auth = true 註釋掉,或者改成 false
kill -9 pid
# su mongod
$ mongod -f /etc/mongod.conf
mongo
> use admin
> db.system.users.find()
> db.system.users.remove({})
> db.createUser( # 添加新帳戶
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
> db.shutdownServer()
# vi /etc/mongod.conf # 恢復 auth = true
kill -9 pid
mongod -f /etc/mongod.conf
本文內容到此結束。