1 场景
本文主要记录在centos7
下安装mongodb4.0
。
1.1 版本说明
mongodb:4.0.26
1.2 下载文件
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.26.tgz
2 安装
2.1 解压到目录
解压:
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.26.tgz -C /opt
更改目录名:
mv /opt/mongodb-linux-x86_64-rhel70-4.0.26 /opt/mongodb4.0.26
2.2 加入环境变量
(1)打开配置文件
vi /etc/profile
(2)文件末尾增加配置
export MONGO_HOME=/opt/mongodb4.0.26
export PATH=$PATH:$MONGO_HOME/bin
(2)让配置生效
source /etc/profile
2.3 创建相关目录
创建数据日志:
mkdir -p /data/mongodb40/log
创建日志目录:
mkdir -p /data/mongodb40/data
2.4 创建配置文件
创建目录:
mkdir /opt/mongodb4.0.26/config
创建配置文件:
touch /opt/mongodb4.0.26/config/mongo40001.conf
配置(mongo40001.conf
),内容如下:
systemLog:
# 日志的目标,可指定为file或者syslog。指定为file时也必须指定systemLog.path。如果不指定就是标准输出。
destination: file
# 日志目录
path: /data/mongodb40/log/mongo40001.log
# 设置为true,限制日志输出量,不记录连接和关闭日志(不好进行日志跟踪,生产中建议关闭)
quiet: true
# 如果指定为true,那么重新启动mongo后,日志会在原来的文件中追加。如果指定为false,则会覆盖之前的日志文件
logAppend: true
# rename使用时间戳重新命名旧的日志文件,新日志发送到新建的日志文件中(为了防止日志文件过大)
logRotate: rename
storage:
# 数据日志
dbPath: /data/mongodb40/data
journal:
# journal为存储引擎辅助机制。每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
# 这样即使出现宕机,启动时 Wiredtiger 会先将数据恢复到最近的一次checkpoint的点,然后重放后续的 journal 操作日志来恢复数据。
enabled: true
# 以文件的形式进行数据存储
directoryPerDB: true
# 存储引擎wiredtiger
wiredTiger:
engineConfig:
# mongo内存大小
configString: cache_size=1G
processManagement:
# 后台方式运行
fork: true
net:
# IP限制
bindIp: 0.0.0.0
# 端口
port: 40001
# 最大连接数
maxIncomingConnections: 1500
security:
# 开启安全认证
authorization: enabled
operationProfiling:
# 慢查询时间(毫秒)
slowOpThresholdMs: 1000
# 慢查询追踪级别,off为0,slowOp为1,all为2。(0 – 不开启;1 – 记录慢命令 (默认为>100ms);2 – 记录所有命令)
mode: slowOp
2.5 启动mongo
/opt/mongodb4.0.26/bin/mongod -f /opt/mongodb4.0.26/config/mongo40001.conf
日式如下内容,表示启动成功:
[root@master bin]# /opt/mongodb4.0.26/bin/mongod -f /opt/mongodb4.0.26/config/mongo40001.conf
2021-07-25T16:59:19.357+0800 I STORAGE [main] Engine custom option: cache_size=1G
about to fork child process, waiting until server is ready for connections.
forked process: 4583
child process started successfully, parent exiting
[root@master bin]#
部署服务器为IP,当前配置端口为40001,则也可通过访问如下路径,判断是否启动成功:
[root@master bin]# curl http://192.168.0.11:40001/
It looks like you are trying to access MongoDB over HTTP on the native driver port.
[root@master bin]#
3 配置用户
3.1 登录mongo
mongo安装服务器上,输入如下命令,进入mongo控制台:
mongo --port 40001
3.2 创建管理员用户
# 进入admin库
use admin
# 创建管理员用户,设置用户名密码(root/root)
db.createUser({ user: "root", pwd: "123456", roles: [ { role: "root", db: "admin"} ]})
# 验证是否成功(返回1,代表创建成功)
db.auth("root","123456")
3.3 管理员登录
退出mongo控制台,用管理员登录
mongo --port 40001 -uroot -p123456
root用户登录后,会有些建议提示,可参考更改配置,如下:
[root@master bin]# mongo --port 40001 -uroot -p123456
MongoDB shell version v4.0.26
connecting to: mongodb://127.0.0.1:40001/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("35f29d28-538d-4e2e-ada2-f46436529310") }
MongoDB server version: 4.0.26
Server has startup warnings:
2021-07-25T16:59:20.513+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2021-07-25T16:59:20.513+0800 I CONTROL [initandlisten]
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten]
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten]
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten]
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 7234 processes, 65536 files. Number of processes should be at least 32768 : 0.5 times number of files.
2021-07-25T16:59:20.514+0800 I CONTROL [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
3.4 创建数据库、创建用户
# admin用户登录控制台
mongo --host 192.168.0.11 --port 40001 -uroot -p123456
(1)创建并切换数据库
use aaDb
(2)创建数据库管理用户
并授权
在哪个库上执行此操作,则此用户属于那个库,登录时,需在此库上认证
# 创建用户(在aaDB上进行认证)
db.createUser({user:"aaUser",pwd:"123456",roles:[{role:"dbOwner",db:"aaDb"}]})
登录测试
# 用户名:aaUser、密码:123456、认证服务器:aaDb
mongo --host 192.168.0.11 --port 40001 -u aaUser -p 123456 --authenticationDatabase aaDb
(3)创建数据库普通用户
并授权
# 切换库,在此库上认证
use aaDb
# 创建普通用户并授权(读/写)
db.createUser({user:"aaUser01",pwd:"123456",roles:[{role:"readWrite",db:"aaDb"}]})
4 开机启动
将mongodb启动项目追加入/etc/rc.local保证mongodb在服务器开机时启动
echo "/opt/mongodb4.0.26/bin/mongod -f /opt/mongodb4.0.26/config/mongo40001.conf " >> /etc/rc.local
5 备注
5.1 保留数据库
mongo中有内置的保留数据库,创建的数据库不可与此类数据库重名(如下说明,参考自其它网站)。
库名 | 作用 |
---|---|
admin | 权限数据库,添加用户到该数据库中,该用户会自动继承数据库的所有权限 |
local | 数据库中的数据永远不会被复制 |
config | 分片时,config 数据库在内部使用,保存分子信息 |
test | 默认数据库,可以用来做各种测试等 |
5.2 常用脚本
(1)客户端登录
# 用户名:aaUser、密码:123456、认证服务器:aaDb
mongo --host 192.168.0.11 --port 40001 -u aaUser -p 123456 --authenticationDatabase aaDb
(2)切换,并使用数据库
# 如没有,则创建
use dbName
(3)查看当前使用数据库
db.getName()
(4)查看当前DB状态
db.stats()
(5)查看db版本
db.version()
(6)查看当前数据库地址
db.getMongo()
(7)查看所有用户
show users
网友评论