groupadd mongod
useradd -g mongod mongod
tar zxvf mongodb-linux-x86_64-rhel70-4.2.24.tgz -C /usr/local/
ln -s /usr/local/mongodb-linux-x86_64-rhel70-4.2.24 /usr/local/mongodb
chown -R mongod:mongod /usr/local/mongodb/
添加mongodb命令到环境变量
echo "export PATH=$PATH:/usr/local/mongodb/bin">>/etc/profile
source /etc/profile
mkdir -p /data/mongo_repl/{data_01,data_02,data_03}
cat > /data/mongo_repl/mongo_01.key << EOF
5heBYl8onlA1pbkH5AWjgGmFDvB4QagyOc5R9q18cU6vuCm14L/31JlmqsdRY95I
Es8ZXRuVsJuae51RHR+Y3lsc4udWk6zVIOtTDgcREm5lHzDyJGZERFqdjLQMAGzd
T6gXNg==
EOF
cp /data/mongo_repl/mongo_01.key /data/mongo_repl/mongo_02.key
cp /data/mongo_repl/mongo_01.key /data/mongo_repl/mongo_03.key
cat > /data/mongo_repl/mongo_01.cnf << EOF
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /data/mongo_repl/mongod_01.log
# Where and how to store data.
storage:
dbPath: /data/mongo_repl/data_01
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /data/mongo_repl/mongod_01.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 20001
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
#security:
# authorization: enabled
# keyFile: /data/mongo_repl/mongo_01.key
#operationProfiling:
#replication:
# replSetName: rs
#sharding:
## Enterprise-Only Options
#auditLog:
EOF
cp /data/mongo_repl/mongo_01.cnf /data/mongo_repl/mongo_02.cnf
cp /data/mongo_repl/mongo_01.cnf /data/mongo_repl/mongo_03.cnf
sed -i 's/20001/20002/g' /data/mongo_repl/mongo_02.cnf
sed -i 's/20001/20003/g' /data/mongo_repl/mongo_03.cnf
sed -i 's/data_01/data_02/g' /data/mongo_repl/mongo_02.cnf
sed -i 's/data_01/data_03/g' /data/mongo_repl/mongo_03.cnf
sed -i 's/mongod_01/mongod_02/g' /data/mongo_repl/mongo_02.cnf
sed -i 's/mongod_01/mongod_03/g' /data/mongo_repl/mongo_03.cnf
sed -i 's/mongo_01/mongo_02/g' /data/mongo_repl/mongo_02.cnf
sed -i 's/mongo_01/mongo_03/g' /data/mongo_repl/mongo_03.cnf
# 修改用户组权限
chown mongod:mongod /data/mongo_repl -R
chmod 600 /data/mongo_repl/mongo_01.key
chmod 600 /data/mongo_repl/mongo_02.key
chmod 600 /data/mongo_repl/mongo_03.key
启动mongo程序
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_01.cnf
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_02.cnf
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_03.cnf
# 登录 mongo
mongo --host 127.0.0.1 --port 20001 admin
添加超级管理员账号
use admin;
db.createUser({user:"root",pwd:"mima123456",roles:[{role:"root",db:"admin"}]})
配置文件中添加 security 参数重启mongodb
security:
authorization: enabled
keyFile: /data/mongo_repl/mongo_01.key
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_01.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_02.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_03.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_01.cnf --replSet=rs
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_02.cnf --replSet=rs
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_03.cnf --replSet=rs
# 初始化复制集
mongo 127.0.0.1:20001 -uroot -p"mima123456" --authenticationDatabase=admin
config = {"_id":"rs",
"members":[
{"_id":0,host:"127.0.0.1:20001"},
{"_id":1,host:"127.0.0.1:20002"},
{"_id":2,host:"127.0.0.1:20003"}
]
}
rs.initiate(config)
# 查看复制集状态
rs.status()
配置文件中添加replication 参数
replication:
replSetName: rs
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_01.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_02.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_03.cnf --shutdown
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_01.cnf
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_02.cnf
/usr/local/mongodb/bin/mongod --config /data/mongo_repl/mongo_03.cnf