编译安装mongodb:
# 关闭seliinux
setenforce 0
# 安装支持包
centos7
yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs net-snmp net-snmp-agent-libs openldap openssl rpm-libs tcp_wrappers-libs
centos6:
yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs libcurl libpcap net-snmp openldap openssl
# 添加管理用户
groupadd mongo
useradd -m -g mongo mongo
echo "mongo" | passwd mongo --stdin
# 禁止开启大页内存
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# 配置文件安全参数
cat >> /etc/security/limits.conf << end
# End of file
* hard nofile 102400
* soft nofile 102400
* hard nproc 65536
* soft nproc 65536
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000
end
# 修改文件相关的安全参数
cat /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
root soft nproc unlimited
加大到:
* soft nproc 65535
# 内存管理工具
yum -y install numactl
# 编辑mong管理账户的环境变量
su - mongo
vi .bash_profile
PATH=/home/mongo/mongodb/bin:$PATH:$HOME/.local/bin:$HOME/bin
export PATH
ulimit -f unlimited -t unlimited -v unlimited -n 64000 -u 64000
source .bash_profile
# rz 放置已经下载好的mongodb安装包 直接下载时间会比较长
# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.10.tgz
rz mongodb-linux******.tgz
tar -xvf mongodb-linux-x86_64-4.0.5.tgz
# 默认最后的目录名称为mongodb,不能修改,变量中有调用
mv mongodb-linux-x86_64-4.0.5 mongodb
# 创建对应的专用目录
mkdir key
mkdir scripts
mkdir cron
mkdir conf
mkdir logs
mkdir data
# 生成加密key 放到对应的安全目录下
openssl rand -base64 512 > key/mongodb.key
chmod 600 key/mongodb.key
# 编辑启动脚本
vi scripts/mongodb_start.sh
#!/bin/bash
numactl --interleave=all /home/mongo/mongodb/bin/mongod -f /home/mongo/conf/mongodb.conf > /dev/null 2>&1
# 编辑配置文件
# vi conf/mongodb.conf 对应的 ip port 需要进行修改 关闭安全认证选项
###日志
systemLog:
destination: file
path: /home/mongo/logs/mongodb.log
logAppend: true
### 存储引擎
storage:
##journal配置
journal:
enabled: true
##数据文件
dbPath: /home/mongo/data/
##是否一个库一个文件夹
directoryPerDB: true
##数据引擎
engine: wiredTiger
##WT引擎配置
wiredTiger:
engineConfig:
##WT最大使用cache(根据服务器实际情况调节)
cacheSizeGB: 1
##是否将索引也按数据库名单独存储
directoryForIndexes: true
##表压缩配置
collectionConfig:
blockCompressor: zlib
##索引配置
indexConfig:
prefixCompression: true
##端口配置
net:
bindIp: 172.19.58.31
port: 27017
processManagement:
fork: true
replication:
##oplog大小
oplogSizeMB: 2048
##复制集名称
replSetName: rs1
##分片配置
#sharding:
##分片角色
# clusterRole: shardsvr
security:
keyFile: /home/mongo/key/mongodb.key
transitionToAuth: false
authorization: enabled
# 启动 mongodb:
sh sh/mongodb_start.sh
# 创建管理用户后,打开配置中的认证安全选项,再次重启
security:
keyFile: /home/mongo/key/mongodb.key
transitionToAuth: false
authorization: enabled
# 检查mongodb的状态
ps -afe|grep -i mongo
cat logs/mongod.log
#进入mongodb进行操作
mongo 10.50.28.193:27107