MongoDB系列—Linux安装MongoDB

来源:互联网 发布:2017java最新面试题 编辑:程序博客网 时间:2024/05/22 15:42

一、下载并解压

MongoDB下载地址:https://www.mongodb.com/download-center#community

[root@localhost src]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.10.tgz[root@localhost src]# tar -zxvf mongodb-linux-x86_64-3.4.10.tgz[root@localhost src]# mv mongodb-linux-x86_64-3.4.10 /usr/local/mongodb

二、创建数据库文件夹与日志文件夹

MongoDB启动时必须指定数据库文件。

[root@localhost src]# cd ../mongodb/[root@localhost mongodb]# mkdir db[root@localhost mongodb]# mkdir logs[root@localhost mongodb]# ll总用量 116drwxr-xr-x 2 root root   243 11月 21 23:25 bindrwxr-xr-x 2 root root     6 11月 21 23:29 db-rw-r--r-- 1 root root 34520 10月 26 01:52 GNU-AGPL-3.0drwxr-xr-x 2 root root     6 11月 21 23:31 logs-rw-r--r-- 1 root root 16726 10月 26 01:52 MPL-2-rw-r--r-- 1 root root  2266 10月 26 01:52 README-rw-r--r-- 1 root root 55625 10月 26 01:52 THIRD-PARTY-NOTICES

三、启动mongoDB,验证是否安装成功

这里指定的数据库目录选项为mongodb下创建的db,命令如下:

[root@localhost mongodb]# ./bin/mongod --dbpath /usr/local/mongodb/db2017-11-21T23:35:11.684+0800 I CONTROL  [initandlisten] MongoDB starting : pid=2270 port=27017 dbpath=/usr/local/mongodb/db 64-bi                                                                                                            t host=localhost.localdomain2017-11-21T23:35:11.684+0800 I CONTROL  [initandlisten] db version v3.4.102017-11-21T23:35:11.684+0800 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9......2017-11-21T23:35:11.793+0800 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs2017-11-21T23:35:11.793+0800 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.42017-11-21T23:35:11.796+0800 I NETWORK  [thread1] waiting for connections on port 27017

启动成功!

四、MongoDB配置

通过上面的MongoDB安装,我们已经将其安装成功并且启动,但是发现启动太过于麻烦,所以需要我们自己给MongoDB配置配置文件,因MongoDB开发者没有配置样例,所以需要我们自己去创建并且写入内容。

[root@localhost mongodb]# vim mongodb.conf# 数据文件存放目录dbpath=/usr/local/mongodb/db# 日志文件存放目录logpath=/usr/local/mongodb/logs/mongodb.log# 端口port=27017# 以守候程序的方式启用,即在后台运行fork=true# 日志输出方式,使用追加的方式写日志logappend=true# PID File 的完整路径,如果没有设置,则没有PID文件pidfilepath=/usr/local/mongodb/mongo.pid# 关闭http接口,默认关闭27018端口访问#nohttpinterface=true# 声明这是一个集群的分片,默认端口27018shardsvr=true# 设置每个数据库将被保存在一个单独的目录#directorydb=true# 开启认证auth=true# 设置开启简单的rest API,置后打开28017网页端口rest=true

使用如下命令重新启动mongoDB,看是否配置文件起作用,命令如下:

[root@localhost mongodb]# ./bin/mongod --config /usr/local/mongodb/mongodb.conf2017-11-21T23:58:23.480+0800 I CONTROL  [main] ** WARNING: --rest is specified without --httpinterface,2017-11-21T23:58:23.480+0800 I CONTROL  [main] **          enabling http interfaceabout to fork child process, waiting until server is ready for connections.forked process: 2303child process started successfully, parent exiting

验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。

[root@localhost mongodb]# lsof -i :27017COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEmongod  2303 root    7u  IPv4  20691      0t0  TCP *:27017 (LISTEN)

五、MongoDB设置为系统服务并且设置开机启动

编辑脚本文件

[root@localhost mongodb]# cd /etc/rc.d/init.d/[root@localhost init.d]# vim mongodb

在文件中加入如下内容:

#!/bin/bash## mongodb - this script starts and stops the mongodb daemin# # chkconfig: - 85 15 # description: mongodb is an XXXX server, XXXX reverse \# xxxx yyyyy zzzz# processname: mongodb# config: /usr/local/mongodb/mongodb.conf# pidfile: /usr/local/mongodb/mongo.pidxxxxd=/usr/local/mongodb/bin/mongodxxxx_config=/usr/local/mongodb/mongodb.confxxxx_pid=/usr/local/mongodb/mongo.pidRETVAL=0prog="mongodb"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "${NETWORKING}" = "no" ] && exit 0[ -x $xxxxd ] || exit 0# Start xxxx daemons functions.start(){        if [ -e $xxxx_pid ]; then                echo $"$prog already running..."                exit 1        fi        echo -n $"Starting $prog:"        daemon $xxxxd -config ${xxxx_config}        RETVAL=$?        echo        [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog        return $RETVAL}# Stop xxxx daemons functions.stop(){        echo -n $"Stopping $prog:"        killproc $xxxxd        RETVAL=$?        echo        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog $xxxx_pid}#reload xxxx service functions.reload(){        echo -n $"Reloading $proc:"        killproc $xxxxd -HUP        RETVAL=$?        echo}# See how we were called.case "$1" in        start)                start                ;;        stop)                stop                ;;        reload)                reload                ;;        restart)                stop                start                ;;        status)                status $prog                RETVAL=$?                ;;        *)                echo $"Usage: $prog {start|stop|restart|reload|status|help}"                exit 1esacexit $RETVAL

保存完成之后,添加脚本执行权限

[root@localhost ~]# chmod +x /etc/rc.d/init.d/mongodb

尝试启动一下

[root@localhost /]# systemctl start mongodb[root@localhost /]# lsof -i :27017COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEmongod  2446 root    7u  IPv4  22142      0t0  TCP *:27017 (LISTEN)[root@localhost /]#

出现下图启动成功

这里写图片描述

将此服务设置为开机启动

[root@localhost /]# chkconfig mongodb on[root@localhost /]# chkconfig --list注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。      欲查看对特定 target 启用的服务请执行      'systemctl list-dependencies [target]'。apache          0:关    1:关    2:关    3:关    4:关    5:关    6:关mongodb         0:关    1:关    2:开    3:开    4:开    5:开    6:关mysqld          0:关    1:关    2:关    3:关    4:关    5:关    6:关netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关network         0:关    1:关    2:开    3:开    4:开    5:开    6:关nginx           0:关    1:关    2:关    3:关    4:关    5:关    6:关rabbitmq-server 0:关    1:关    2:关    3:关    4:关    5:关    6:关tomcat          0:关    1:关    2:开    3:开    4:开    5:开    6:关基于 xinetd 的服务:        chargen-dgram:  关        chargen-stream: 关        daytime-dgram:  关        daytime-stream: 关        discard-dgram:  关        discard-stream: 关        echo-dgram:     关        echo-stream:    关        tcpmux-server:  关        telnet:         开        time-dgram:     关        time-stream:    关

然后重新启动机器进行测试,发现开机服务应启动并且端口也在使用中。

原创粉丝点击