mongo服务搭建和集群说明文档
1.下载安装mongodb
下载所需版本(mongodb-linux-x86_64-3.4.6)的mongodb 官方地址解压安装包并复制到目标目录
tar -xzvf mongo*.tar.gz -C /usr/local
mv /usr/local/mongodb-linux-x86_64-3.4.6 /usr/local/mongodb
配置环境变量
echo "export PATH=/usr/local/mongodb/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
2.配置mongod
创建mongod.conf官网文档。以下ip地址和端口请根据情况更换
cat <<'EOF'>>/etc/mongod.conf
systemLog:
destination: file
path: "/var/log/mongod.log"
logAppend: true
processManagement:
fork: true
net:
bindIp: 10.25.113.1
port: 27018
storage:
dbPath: "/mongodata"
#security:
# keyFile: "/mongodata/.keyfile"
replication:
replSetName: 'mongoRepl'
#setParameter:
# enableLocalhostAuthBypass: true
EOF
启动mongod
mongod -f /etc/mongod.conf
连上数据库并切换到admin下创建具有’userAdminAnyDatabase’’clusterAdmin’权限的用户
连接mongodb,进入mongodb的cli
mongo
使用admin
use admin
创建管理用用户
db.createUser({user:"root",pwd:"Paic1234",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"clusterAdmin","db":"admin"}]})
检查
show users
3.集群搭建
生成.keyFile文件并修改文件权限
openssl rand -base64 756 > /mongodata/.keyfile
chmod 400 /mongodata/.keyfile
将生成好的.keyFile文件复制到各个服务节点下
开启访问控制,在mongod.conf中添加如下配置
security:
keyFile: "/mongodata/.keyfile"
replication:
replSetName: 'mongoRepl'
setParameter:
enableLocalhostAuthBypass: true
重启mongodb
pkill mongod
mongod -f /etc/mongod.conf
各节点保证mongodb的启动,然后初始化集群,host中的主机域名和端口根据环境更改
rs.initiate(
{
id : 'mongoRepl',
members: [
{ _id : 0, host : "mongo1.example.net:27018" },
{ _id : 0, host : "mongo2.example.net:27018" },
{ _id : 0, host : "mongo3.example.net:27018" },
]
}
)
通过rs.status()查看主从节点
注:在从节点下需要执行rs.slaveOk()后才能执行数据库管理和用户管理等操作。数据库下需要执行db.setSlaveOk()后才能对数据库操作。
切换到相关数据库下进行建权
4.数据备份和恢复
4.1 MongoDB数据库备份
mongodump -h dbhost -d dbname -u user -p pwd -o dbdirectory
-h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d: 需要备份的数据库实例,例如:test
-u:备份数据库的用户
-p:备份数据库的密码
-o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
4.2 MongoDB数据库恢复
mongorestore -h dbhost -d dbname --dir dbdirectory
-h: MongoDB所在服务器地址
-d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
-u:需恢复数据库的用户
-p:需恢复数据库的密码
—dir: 备份数据所在位置,例如:/home/mongodump/itcast/
—drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!
—authenticationDatabase: admin 需恢复数据库admin库进行授权恢复