mongo服务搭建和集群

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库进行授权恢复

你可能感兴趣的:(mongo服务搭建和集群)