CentOS7安裝MongoDB4

一、安裝

把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

本文內容到此結束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章