linux学习

使用软件包安装并配置MongoDB的主从复制

第一步:下载相关软件包

https://xianyijitan.top/wp-blog/typora-user-file/mongodb-linux-x86_64-CentOS7-3.4.24.tgz

第二步:解压

mkdir /usr/local/mongodb

tar -xvf mongodb-linux-x86_64-CentOS7-3.4.24.tgz   -C  /usr/local/mongodb/

配置

创建 数据文件存放目录

mkdir -p /usr/local/mongodb/data/db1

mkdir -p /usr/local/mongodb/data/db2

创建 日志文件存放目录 和 mongodb.log文件

mkdir /usr/local/mongodb/logs

touch /usr/local/mongodb/logs/mongodb1.log

touch /usr/local/mongodb/logs/mongodb2.log

创建mongodb1.conf 并写入下面配置信息

vim /usr/local/mongodb/mongodb1.conf
#数据文件存放目录
dbpath = /usr/local/mongodb/data/db1
#日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb1.log
#默认端口27017
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
#允许远程连接,127.0.0.1只允许本地连接
bind_ip=0.0.0.0
#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问
#auth = true
replSet = rs0

创建mongodb2.conf 并写入下面配置信息

vim /usr/local/mongodb/mongodb2.conf
#数据文件存放目录
dbpath = /usr/local/mongodb/data/db2
#日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb2.log
#默认端口27018
port = 27018
#以守护程序的方式启用,即在后台运行
fork = true
#允许远程连接,127.0.0.1只允许本地连接
bind_ip=0.0.0.0
#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问
#auth = true
replSet = rs0

配置环境变量

vim /etc/profile
# 添加一行
export PATH=$PATH:/usr/local/mongodb/bin

#使环境变量立即生效
source /etc/profile

配置/etc/hosts文件

[root@test mongodb]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.135  test

启动MongoDB数据库

mongod -f /usr/local/mongodb/mongodb1.conf

#或

mongod --config /usr/local/mongodb/mongodb1.conf

关闭MongoDB数据库

mongod --shutdown -f /usr/local/mongodb/mongodb1.conf

mongod --shutdown -f /usr/local/mongodb/mongodb2.conf

初始化副本集:在主服务器上,执行以下命令初始化副本集:

mongo --port 27017

rs.initiate()

这将把当前服务器设置为主服务器,并初始化一个副本集。

添加从服务器:在MongoDB客户端连接到主服务器后,执行以下命令来添加从服务器:

rs.add("从服务器名字:27018")

重复执行该命令,以添加任意数量的从服务器。

检查副本集状态:在主服务器上执行以下命令,检查副本集的状态:

rs.status()

在从服务器中设置(可以不用配置)

rs.slaveOk() 是一个 MongoDB 的 shell 命令,用于在复制集中允许从节点读取数据。在复制集中,数据是从主节点复制到从节点的。默认情况下,从节点只能读取自己的数据副本,而不是从主节点直接读取数据。使用 rs.slaveOk() 命令可以允许从节点直接从主节点读取数据,而不是等待数据复制到从节点。

这个命令通常在从节点上进行设置,以便从节点可以更快地获取数据。通过允许从节点直接从主节点读取数据,可以减少数据复制的延迟,提高读取性能。

rs.slaveOK()
db.setSlaveOk()

连接数据库

mongo --port 27017
# 或使用用户名和密码连接
mongo --port 27017 -u root -p 111111

设置超级用户

#必须连接到mongo,选择进入 admin

use admin

# 创建用户
db.createUser(
        {
                user:"root",
                pwd:"123456",
                roles:[{role:"root",db:"admin"}]
        }
);

创建用户后,停止mongo服务,在配置文件中开启 auth=true,再次启动 使用用户名和密码访问

# 关闭
db.shutdownServer();

# 修复
mongod -f mongod.conf --repair

# 查看用户
show users

# 修改用户名和密码
db.changeUserPassword("root", "111111")

留言

您的邮箱地址不会被公开。 必填项已用 * 标注