[Linux]安装MongoDB
一、下载并解压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 mongod...
一、下载并解压
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
总用量 116
drwxr-xr-x 2 root root 243 11月 21 23:25 bin
drwxr-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.0
drwxr-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/db
......
2017-11-21T23:35:11.793+0800 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs
2017-11-21T23:35:11.793+0800 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4
2017-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
# 声明这是一个集群的分片,默认端口27018
shardsvr=true
# 设置每个数据库将被保存在一个单独的目录
#directorydb=true
# 开启认证
auth=true
# 设置开启简单的rest API,置后打开28017网页端口
rest=true
使用如下命令重新启动mongoDB,看是否配置文件起作用,命令如下:
[root@localhost mongodb]# ./bin/mongod --config /usr/local/mongodb/mongodb.conf
2017-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 interface
about to fork child process, waiting until server is ready for connections.
forked process: 2303
child process started successfully, parent exiting
验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。
[root@localhost mongodb]# lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2303 root 7u IPv4 20691 0t0 TCP *:27017 (LISTEN)
编辑脚本文件
[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.pid
xxxxd=/usr/local/mongodb/bin/mongod
xxxx_config=/usr/local/mongodb/mongodb.conf
xxxx_pid=/usr/local/mongodb/mongo.pid
RETVAL=0
prog="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 1
esac
exit $RETVA4
保存完成之后,添加脚本执行权限
[root@localhost ~]# chmod +x /etc/rc.d/init.d/mongodb
1
尝试启动一下
[root@localhost /]# systemctl start mongodb
[root@localhost /]# lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 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: 关
2
然后重新启动机器进行测试,发现开机服务应启动并且端口也在使用中。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)