最近搭建过程的记录,亲测可用。
1,下载
去mongo的官网下载最新发行版,我安装的时候是4.2.7
![2e33e24c295c070762555a980a310cca.png](https://i-blog.csdnimg.cn/blog_migrate/54ff9ba6c2f89f5c0e67b9cfc16af913.jpeg)
2,规划
本次搭建的是单机环境,主要用于个人测试使用。
3,系统参数修改
官方建议的ulimit参数配置
![c5aaa914b3c0f830e368c2818b435005.png](https://i-blog.csdnimg.cn/blog_migrate/7f81b7afccc979178ca4b742c8d5390d.jpeg)
不使用hugepages
cat /proc/sys/vm/nr_hugepages
确保其值为零,如果不是请修改执行下面操作。
echo 0>/proc/sys/vm/nr_hugepages
echo never >> /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /sys/kernel/mm/transparent_hugepage/defrag
防火墙端口
我这里规划使用11000端口,要提前打开。需root权限
firewall-cmd --zone=public --add-port=11000/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
安装numactl
在NUMA架构的机器上,要以numactl运行,否则有告警
yum install numactl
4,开始部署
4.1 目录规划
~/mongo 放mongo安装文件
~/mongodata/data 放数据文件
~/mongodata/logs/mongod.log mongo运行日志
4.2 解压
cd ~/mongowget http://我自己的服务/U9gUl/mongodb-linux-x86_64-rhel70-4.2.7.tgztar -zxvf mongodb-linux-x86_64-rhel70-4.2.7.tgzcd mongodb-linux-x86_64-rhel70-4.2.7cd bin
4.3 配置文件
当前所在路径为 mongo/mongodb-linux-x86_64-rhel70-4.2.7/bin
创建配置文件
mkdir confcd confvim mongod.conf
配置文件内容:
具体解释,可以看官方文档
https://docs.mongodb.com/manual/reference/configuration-options/#file-format
systemLog: destination: file path: "/home/xxx/mongodata/logs/mongod.log" logAppend: truestorage: journal: enabled: true dbPath: "/home/xxx/mongodata/data" directoryPerDB: true engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 1 directoryForIndexes: true journalCompressor: zlib collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: truenet:bindIp: 0.0.0.0 port: 11000processManagement: fork: true
4.4 启动脚本
写个start.sh,以后方便点
numactl --interleave=all /home/haieradmin/mongo/mongodb-linux-x86_64-rhel70-4.2.7/bin/mongod -f ./conf/mongod.conf
chmod +x start.sh
4.5 启动
sh start.sh
4.6 关闭
./mongod --shutdown -f ./conf/mongod.conf
5 配置管理员用户
登录
./mongo localhost:11000
会看到有告警
** WARNING: Access control is not enabled for the database.
应该以认证的安全模式使用mongo。否则都能登录mongo。
先切到admin库下,默认是在test库。这点容易忘记
use admin
db.createUser({user: "admin", pwd: "Hello,123", roles:[{role:"root", db:"admin"}]})
现在用auth模式重启,解决warning
修改start.sh
numactl --interleave=all /home/haieradmin/mongo/mongodb-linux-x86_64-rhel70-4.2.7/bin/mongod --auth -f ./conf/mongod.conf
重启mongo。重新登录,要加上用户名密码
./mongo localhost:11000 -u admin -p Hello,123 --authenticationDatabase admin
6, 创建普通用户及业务数据库
记得切到admin库下
use admindb.createUser({ user: 'baas', pwd: 'hibaas',roles: [ { role: "dbOwner", db: "baas_bbs" }] })
切到baas_bbs库下
插入一条数据试试
use baas_bbsdb.testCollection.save({"name":"yunsh","age":"18"})
WriteResult({ "nInserted" : 1 })
ok,完成
END
![60a4261e05d86b725661f1c8922c6958.png](https://i-blog.csdnimg.cn/blog_migrate/20bfd7005cd596b6044a7b8b7f3ac712.jpeg)
感谢阅读
![4df899ecd230339f1f4d1124a6719bbe.png](https://i-blog.csdnimg.cn/blog_migrate/9a01e8df2898ff6dd2481ff2f08491ec.jpeg)
![84a474bbabc8fb86cd77f269a0e8a2e8.gif](https://i-blog.csdnimg.cn/blog_migrate/2445b560df8bc2ec75daf81d4a6eb2ae.gif)
感谢关注 - 技术笔记与开源分享
只写自己验证过的内容