原创

MongoDB安装与主从同步配置


MongoDB安装与主从同步配置

一、MongoDB数据库安装

  1. 首先,我们先下载MongoDB数据库上传到服务器上,执行解压命令:

    tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.23.tgz
    
  2. 把解压后的MongoDB安装包,移动到/usr/loca/目录下,并重命名为mongodb

    mv mongodb-linux-x86_64-ubuntu1604-3.6.23 /usr/local/mongodb
    

二、MongoDB数据库启动

   完成MongoDB数据库的安装后,为了方便我们后续操作,我们可以把MongoDB目录下的/bin子目录添加到PATH变量下,这样即可方便我们执行MongoDB的相关命令。
  1. 打开/etc/profile文件,在文件的最下方添加如下内容:

    PATH=$PATH:/usr/local/mongodb/bin
    export PATH
    

    刷新使配置生效:

    source /etc/profile
    

    此时,如果还不能启动mongoDB,因为我们还没有创建MongoDB的数据库存储目录,否则数据库启动会报错。

    第一种方式(默认方式):

    在默认情况下,MongoDB数据库的默认数据目录为/data/db,因此,我们执行命令:

    mkdir -p /data/db
    

    mongoDB数据库的启动命令是:

    	 mongod &  //加 & 表示后台运行
    

第二种方式启动(推荐):

​ 在/etc 下创建mongod.conf 配置文件,内容如下:

port=27017    #端口号
bind_ip=0.0.0.0  #绑定ip,0.0.0.0表示运行所有远程连接
logpath=/usr/local/mongodb/log/mongod.log   #日志文件路径
pidfilepath=/usr/local/mongodb/mongod.pid   #进程保存文件的路径
logappend=true  #日志内容追加
fork=true  #后台运行

然后启动mongod时引入配置文件:mongod -f /etc/mongod.conf

MongoDB启动后,会在设备上开启监听27017端口,如下所示: 在这里插入图片描述之后,我们可以执行命令:

mongo

来登录本设备的MongoDB数据,如下所示: 在这里插入图片描述

从上图可以看出,我们已经成功登录MongoDB数据库,并且可以正常使用了。

MongoDB设置开机自启动

假设启动命令如下:

sudo /usr/local/mongodb/bin/mongod -f /etc/mongod.conf

方法有二:

1、把这句话写到/etc/rc.local,即可开机启动。

第二种:

2、将一个脚本放到/etc/init.d/

比如,命名为/etc/init.d/mongodb,则执行以下步骤即可:

1)要给它们赋予执行权限:

chmod +x /etc/init.d/mongodb

2)接着试一下是否可以启动、停止:

service mongodb start``service mongodb stop

3)最后设为开机启动:

chkconfig mongodb on

三、 关闭mongodb

1 前台运行:

如果没有使用--fork,直接可以前台退出终端关闭。

通过这种方式,Mongodb将会自己做清理退出,把没有写好的数据写完成,并最终关闭数据文件。

要注意的是这个过程会持续到所有操作都完成。

2后台运行:

如果使用--fork在后台运行mongdb服务,那么就要通过向服务器发送shutdownServer()消息来关闭。

1、普通命令: $ ./mongod > use admin > db.shutdownServer() 要注意的是,这个命令只允许在本地,或是一个经过认证的客户端

2、kill 关闭进程

ps -ef | grep mongod  #查看mongodb进程
kill -9 [mongodb进程ID]  #关闭

三、MongoDB主从同步配置

1、环境准备 今天,我们来配置一下MongoDB的主从架构,我们使用两台设备,分别作为MongoDB的主库和从库,设备及其IP地址如下所示: MongoDB主库:192.168.136.11 MongoDB从库:192.168.136.12 我们在配置前,需要进行非常重要的预准备工作,即关闭防火墙以及在主从设备上同步当前时间。否则,任何一个地方出现问题,都有可能导致我们实战失败。 关于MongoDB数据库的安装已经在上文MongoDB详解(四)——MongoDB数据库安装中介绍过,在这里就不过多赘述了。本文在两台设备上都已经成功安装MongoDB数据库的基础上进行。

2、主从数据库配置 接下来,我们就正式开始MongoDB主从数据库的配置。 要开启MongoDB数据库的主从同步功能,我们就不能按照MongoDB默认的方式来进行启动,我们必须要先创建MongoDB数据库的配置文件,在MongoDB数据库启动时,使其按照配置文件的设定来进行启动。

在主、从服务器上创建MongoDB的配置文件为/usr/local/mongodb/mongod.conf,并且在文件中写入如下相同内容:

bind_ip=0.0.0.0
replSet=pzz

在上述配置中,bind_ip表明了MongoDB数据库启动后监听的IP地址,在默认情况下,MongoDB数据库会只监听127.0.0.1,设置0.0.0.0表示任意远程连接;replSet参数指定了MongoDB数据库的主从同步集群名称。配置完成后的文件如下所示:

3、启动和设置主从

在MongoDB的主、从数据库上同时执行命令如下所示:

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

MongoDB数据库启动后,我们先登录到主库上,执行命令:

rs.status()

在这里插入图片描述

然后在主服务器上执行配置命令:

var config={_id:"pzz",members:[{_id:0,host:"192.168.136.11:27017"},{_id:1,host:"192.168.136.12:27017"}]}

在上述配置中,我们定义了名为config的变量,并且指定了MongoDB主从架构中的主库和从库IP和端口。接下来,我们按照该变量的配置,初始化MongoDB的主从配置,执行命令:

rs.initiate(config)

该命令执行结果如下所示: 在这里插入图片描述

再在主库上执行命令:

rs.status()

则该命令执行结果如下所示: 在这里插入图片描述

从上图中可以看出,我们的MongoDB主从同步成功!并且在数据库主从同步成功后,主库前面会出现PRIMARY的提示符。 接下来,我们在从库上,执行命令:

rs.status()

该命令执行结果如下所示: 在这里插入图片描述 从上图中可以看出,在MongoDB数据库主从同步成功后,从库上出现SECONDARY的提示符。

四、效果检验

最后,我们来检验一下我们的MongoDB主从同步的结果。 在主库上,我们来创建数据,过程如下所示: 在这里插入图片描述 接下来,我们来到从库上,来查看我们在主库上创建的结果是否出现在了从库上。 注意,如果我们执行执行查看命令,那么结果如下所示:

在这里插入图片描述 从上图可以看出,我们在从库上查询的操作失败,这是因为在配置了MongoDB的主从同步后,在MongoDB的从库上,没有读和写的权限,因此我们无法查看数据。 我们可以执行命令:

db.getMongo().setSlaveOk()

来开启MongoDB数据库的独权限,然后再次查看MongoDB从库上的内容,结果如下所示: 在这里插入图片描述

从上图中可以看出,我们在MongoDB数据上的数据,已经自动同步给了从库,我们的MongoDB数据库主从同步配置成功!

教程