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

本文内容到此结束。

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