使用 MongoDB 让你的系统自动启动

1. 什么是 MongoDB

MongoDB 是一个高性能、高可用性、面向文档类型的 NoSQL 数据库管理系统。与传统的关系型数据库不同的是,MongoDB 存储的是 JSON 格式的“文档”,而不是表格。由于文档结构的灵活性和可扩展性,MongoDB 在大数据领域及 Web 应用领域被广泛使用。

2. MongoDB 的自动启动

MongoDB 的自动启动是指在系统启动时,自动启动 MongoDB 服务。这样可以避免手动进入命令行或启动器执行命令启动 MongoDB 服务的步骤。

2.1 Ubuntu 系统上的自动启动

在 Ubuntu 系统上,可以使用 systemd(systemd is a system and service manager)来配置 MongoDB 的自动启动。

首先,创建一个名为 mongodb.service 的服务文件,使用 root 用户或 sudo 权限执行以下命令:

sudo nano /etc/systemd/system/mongodb.service

在服务文件中输入以下内容:

[Unit]

Description=High-performance, schema-free document-oriented database

After=network.target

[Service]

User=mongodb

ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]

WantedBy=multi-user.target

保存并退出编辑器。

其中,mongodb.service 是服务的名称,Description 是服务的描述。最后一行 [Install] 中的 WantedBy=multi-user.target 表示服务将在多用户模式下自动启动。

执行以下命令将服务添加到 systemctl:

sudo systemctl enable mongodb.service

这将使 MongoDB 服务在系统启动时自动启动。执行以下命令来启动服务:

sudo systemctl start mongodb.service

现在,MongoDB 服务应该已经在后台运行了。

2.2 CentOS/RHEL 系统上的自动启动

在 CentOS/RHEL 系统上,可以使用 System V(SysV)init 脚本来配置 MongoDB 的自动启动。

首先,创建一个名为 mongodb 的 SysV 脚本,使用 root 用户或 sudo 权限执行以下命令:

sudo nano /etc/init.d/mongodb

在脚本中输入以下内容:

#!/bin/sh

#

# chkconfig: - 85 15

# description: MongoDB init script

#

# processname: mongodb

# config: /etc/mongod.conf

# pidfile: /var/run/mongodb/mongod.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

MONGOD="/usr/bin/mongod"

CONF="/etc/mongod.conf"

PIDFILE="/var/run/mongodb/mongod.pid"

OPTIONS=""

# Handle service actions.

case "$1" in

start)

echo -n "Starting mongod: "

[ -f $PIDFILE ] && echo_failure && echo "mongod already running." && exit 1

daemon --user mongod $MONGOD --quiet --config $CONF $OPTIONS > /dev/null

RETVAL="$?"

echo $RETVAL

[ "$RETVAL" = 0 ] && touch /var/lock/subsys/mongod

;;

stop)

echo -n "Stopping mongod: "

[ ! -f $PIDFILE ] && echo_failure && echo "mongod not running." && exit 1

killproc -p $PIDFILE $MONGOD

RETVAL="$?"

echo $RETVAL

[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/mongod && rm -f $PIDFILE

;;

restart)

$0 stop

sleep 1

$0 start

;;

status)

status $MONGOD

RETVAL="$?"

;;

*)

echo "Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

exit $RETVAL

保存并退出编辑器。添加可执行权限:

sudo chmod +x /etc/init.d/mongodb

服务文件中的 chkconfig 告诉系统在运行级别 3 和 5 下启动或关闭服务。如果系统在运行时已启动,则会自动启动 MongoDB 服务。

执行以下命令将服务添加到启动列表:

sudo chkconfig --add mongodb

sudo chkconfig --level 35 mongodb on

这将在运行级别 3 和 5 下启用 MongoDB 服务。

执行以下命令启动服务:

sudo service mongodb start

现在,MongoDB 服务应该已经在后台运行了。

3. 总结

使用 systemd 或 SysV 脚本可以很容易地配置 MongoDB 的自动启动,这将使 MongoDB 服务在系统启动时自动启动,并且减少手动启动的步骤。

数据库标签