mongodb副本集安装

4vcpu/16g/系统盘_500G 3台(mongodb4.2)  
10.3.128.26/10.3.128.27/10.3.128.28



mkdir -p /data/mongo/db
mkdir -p /etc/mongo

groupadd mongod
useradd -g mongod mongod
tar zxvf mongodb-linux-x86_64-rhel70-4.2.14.tgz  -C /usr/local/
ln -s  /usr/local/mongodb-linux-x86_64-rhel70-4.2.14   /usr/local/mongodb
chown -R mongodb:mongodb /usr/local/mongodb
chown -R mongodb:mongodb /data/mongo
 

# 添加文件打开数和mongod用户进程连接数
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
mongod soft nproc 32768
mongod hard nproc 32768
EOF


# 禁用Transparent Huge Pages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

cat >> /etc/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag;then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF

chmod +x /etc/rc.d/rc.local

cat > /etc/mongo/mongodb.key  << EOF 
5heBYl8onlA1pbkH5AWjgGmFDvB4QagyOc5R9q18cU6vuCm14L/31JlmqsdRY95I
Es8ZXRuVsJuae51RHR+Y3lsc4udWk6zVIOtTDgcREm5lHzDyJGZERFqdjLQMAGzd
T6gXNg==
EOF


 
cat >  /etc/mongo/mongo.cnf  << EOF 
port=20001
fork=true
journal=true
maxConns=20000
logappend=true
bind_ip=0.0.0.0
dbpath=/data/mongo
logpath=/data/mongo/mongo.log
unixSocketPrefix=/tmp
pidfilepath = /tmp/mongod.pid
timeZoneInfo=/usr/share/zoneinfo
keyFile=/etc/mongo/mongodb.key
#auth=true
oplogSize=10240
directoryperdb=true
storageEngine=wiredTiger
wiredTigerCacheSizeGB = 16
wiredTigerStatisticsLogDelaySecs = 0
wiredTigerJournalCompressor = snappy
wiredTigerDirectoryForIndexes = true
wiredTigerCollectionBlockCompressor = snappy
wiredTigerIndexPrefixCompression = 1
replSet=uat_mongo
EOF


# 修改用户组权限
chown mongod:mongod /etc/mongo -R 
chmod 600 /etc/mongo/mongodb.key


启动mongo程序
# /usr/local/mongodb/bin/mongod --config /etc/mongo/mongo.cnf


添加mongodb命令到环境变量
echo "export PATH=\$PATH:/usr/local/mongodb/bin">>/etc/profile 
source /etc/profile
 

# 登录 mongo
mongo --host 127.0.0.1 --port 20001 admin


添加超级管理员账号

> use admin;

> db.createUser({user:"root",pwd:"Taimei198",roles:[{role:"root",db:"admin"}]})


把配置文件 #auth 注释去掉,重启mongodb
/usr/local/mongodb/bin/mongod --config /etc/mongo/mongo.cnf --shutdown 
 
 
# 登录mongodb,进行密码认证
db.auth('root','Taimei198')


# 初始化复制集
config = {"_id":"uat_mongo",
          "members":[
          {"_id":0,host:"10.3.128.26:20001"},
          {"_id":1,host:"10.3.128.27:20001"},
          {"_id":2,host:"10.3.128.28:20001"}
          ]
}

rs.initiate(config)


# 查看复制集状态
rs.status()



# 使用systemctl 来管理 mongod 
 
cat >  /etc/systemd/system/mongodb.service  << EOF 
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /etc/mongo/mongo.cnf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /etc/mongo/mongo.cnf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF


#添加可执行权限:
chmod 755 /etc/systemd/system/mongodb.service


#重载 systemctl units
systemctl daemon-reload


#设置为开机自启动
systemctl enable mongodb.service

 

posted @ 2021-06-29 14:02  屠魔的少年  阅读(5)  评论(0)    收藏  举报