首先,我们先下载MongoDB数据库上传到服务器上,执行解压命令:
tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.23.tgz
把解压后的MongoDB安装包,移动到/usr/loca/目录下,并重命名为mongodb
mv mongodb-linux-x86_64-ubuntu1604-3.6.23 /usr/local/mongodb
完成MongoDB数据库的安装后,为了方便我们后续操作,我们可以把MongoDB目录下的/bin子目录添加到PATH变量下,这样即可方便我们执行MongoDB的相关命令。
打开/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数据库,并且可以正常使用了。
假设启动命令如下:
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
如果没有使用--fork,直接可以前台退出终端关闭。
通过这种方式,Mongodb将会自己做清理退出,把没有写好的数据写完成,并最终关闭数据文件。
要注意的是这个过程会持续到所有操作都完成。
如果使用--fork在后台运行mongdb服务,那么就要通过向服务器发送shutdownServer()消息来关闭。
1、普通命令: $ ./mongod > use admin > db.shutdownServer() 要注意的是,这个命令只允许在本地,或是一个经过认证的客户端
2、kill 关闭进程
ps -ef | grep mongod #查看mongodb进程
kill -9 [mongodb进程ID] #关闭
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数据库主从同步配置成功!