
下载安装包到 /user/local
sudo wget -P /usr/local <https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.14.tgz>解压
sudo tar -zxvf /usr/local/mongodb-linux-x86_64-rhel70-4.4.14.tgz
sudo mv /usr/local/mongodb*/ /usr/local/mongodb-4.4.14/配置环境变量(可以省略)
sudo vim /etc/profile在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 上面添加如下内容后保存退出
export PATH=/usr/local/mongodb-4.4.14/bin:$PATH使用以下命令让环境变量生效
source /etc/profile创建配置文件和日志文件
创建数据库和日志存放目录,文件夹权限是 755
cd /usr/local/mongodb-4.4.14 && sudo mkdir -m 755 data ./data/logs ./data/db创建配置文件和日志文件
sudo touch {mongodb.conf,./data/logs/mongo.log}添加配置文件内容
sudo vim mongodb.confsystemLog:
#日志级别, 默认 0, 1-5 均会包含 debug 信息
#verbosity: 1
#MongoDB发送所有日志输出的目标指定为文件
destination: file
path: "/usr/local/mongodb-4.4.14/data/logs/mongo.log"
logAppend: true
storage:
#存储其数据的目录
dbPath: "/usr/local/mongodb-4.4.14/data/db"
journal:
##journal 日志持久存储, journal 日志用来数据恢复, 通常用于故障恢复
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式
fork: true
net:
#服务实例绑定的IP,默认是 localhost
bindIp: 0.0.0.0
port: 27017
security:
#开启密码登录
authorization: enabled
#operationProfiling:
# slowOpThresholdMs: <int> #数据库 profiler 判定一个操作是"慢查询"的时间阈值, 单位毫秒. mongod 会把慢查询记录到日志中,默认 100ms
# mode: <string> #数据库 profiler 级别, 操作的性能信息将会被写入日志文件中, 可选值 "off"--关闭 profiling, "slowOp"--只包包含慢操作, "all"--记录所有操作
#数据库profiling会影响性能,建议只在性能调试阶段开启按 Esc 保存退出 (:wq)
设置开机自启
创建 mongodb.service 服务文件
sudo vim /lib/systemd/system/mongodb.service写入 mongodb.service 服务文件内容
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb-4.4.14/bin/mongod --config /usr/local/mongodb-4.4.14/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb-4.4.14/bin/mongod --shutdown --config /usr/local/mongodb-4.4.14/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target设置权限
sudo chmod 754 /lib/systemd/system/mongodb.service#重新加载配置
sudo systemctl daemon-reload
#启动服务
sudo systemctl start mongodb.service
#关闭服务
sudo systemctl stop mongodb.service
#开机启动
sudo systemctl enable mongodb.service
#查看状态
sudo systemctl status mongodb.service防火墙设置
- 或者参考
iptables
CentOS7 默认使用的防火墙是 firewall, 我们需要开放防火墙端口或者关闭防火墙。
开放防火墙端口:
#开放 27017 端口
sudo firewall-cmd --permanent --add-port=27017/tcp
#修改配置后需要重启防火墙
sudo firewall-cmd --reload
#查询 27017 端口是否开放
sudo firewall-cmd --query-port=27017/tcp关闭防火墙:
#停止防火墙
sudo systemctl stop firewalld.service
#禁止防火墙开机启动
sudo systemctl disable firewalld.service设置密码
进入 Mongo 控制台
cd /usr/local/mongodb-4.4.14/bin && ./mongo
# 出现下面的版本信息提示
# MongoDB shell version v4.4.14
# connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
# Implicit session: session { "id" : UUID("d893596b-36b7-4b4a-8659-990bd42f6d9b") }
# MongoDB server version: 4.4.14
# Welcome to the MongoDB shell.
# For interactive help, type "help".
# For more comprehensive documentation, see
# <https://docs.mongodb.com/>
# Questions? Try the MongoDB Developer Community Forums
# <https://community.mongodb.com>
> 添加用户和密码
use admin
db.createUser(
{
user:"root",
pwd:"替换为密码",
roles:[{role:"root",db:"admin"}]
}
)
#或者不换行输入
db.createUser({user:"root",pwd:"替换为密码",roles:[{role:"root",db:"admin"}]})命令 exit 退出 Mongo 控制台
重启 Mongo
sudo systemctl restart mongodb.service验证是否生效
./mongo admin -u root -p你的密码或者进入 Mongo 控制台验证
use admin
show users #注意这里会被拒绝说明密码登录功能成功开启
db.auth("root", "你的密码") #如果返回1, 则表示成功
//db.auth()方法理解为 用户的验证功能常用命令
show users // 查看当前库下的用户
db.dropUser('testadmin') // 删除用户
db.updateUser('root', {pwd: '654321'}) // 修改用户密码
db.auth('root', '654321') // 密码认证启动失败时可以尝试以下方法恢复
# 切换到 root 用户(可选)
su
# 进入执行目录
cd /usr/local/mongodb-4.4.14/bin
# 执行恢复程序
mongod -dbpath /usr/local/mongodb-4.4.14/data/db --repair
# 重新启动 mongodb
sudo systemctl restart mongodb.service