麒麟系统—— openKylin 安装 mongodb
- 一、准备工作
- 1. 确保麒麟系统 openKylin 已经安装完毕。
- 二、下载解压 MongoDB
- 二、增加环境变量
- 三、配置MongoDB
- 创建数据目录
- 创建日志文件
- 运行
- 四、加入到服务中
MongoDB是一款高性能、开源的NoSQL数据库,因其灵活的数据结构、高可扩展性和易用性而受到广泛应用。麒麟系统是基于Linux的操作系统,openKylin是其开源社区版本。本文将分享如何在麒麟系统下的openKylin上安装MongoDB。
一、准备工作
1. 确保麒麟系统 openKylin 已经安装完毕。
我这里使用的鸿蒙系统是 :openKylin-2.0-alpha-x86_64
二、下载解压 MongoDB
- 下载MongoDB源码:访问MongoDB官网(https://www.mongodb.com/try/download/community),选择 ubuntu 版本下载。将下载的文件解压,并切换到解压后的目录。
mkdir /home/mongodb
cd /home/mongodb
-
mkdir /home/mongodb
:mkdir
是 “make directory” 的缩写,用于创建目录。/home/mongodb
是要创建的目录的路径。- 执行该命令后,系统会在
/home
目录下创建一个名为mongodb
的新目录。
-
cd /home/mongodb
:cd
是 “change directory” 的缩写,用于改变当前工作目录。/home/mongodb
是要切换到的目标目录。- 执行该命令后,当前工作目录会切换到
/home/mongodb
将下载好的文件拖到这个目录下面
cd /home/mongodb
sudo tar -zxvf mongodb-linux-x86_64-ubuntu2004-7.0.5.tgz
sudo mv /home/mongodb/mongodb-linux-x86_64-ubuntu2004-7.0.5 /usr/local/mongodb
cd /usr/local/mongodb
-
sudo tar -zxvf mongodb-linux-x86_64-ubuntu2004-7.0.5.tgz
:sudo
是 “superuser do” 的缩写,用于以超级用户权限执行命令。tar
是解压缩和打包的命令。-zxvf
是 tar 命令的选项,分别表示解压(-x
),使用 gzip 解压缩(-z
),显示详细输出(-v
),指定文件(-f
)。mongodb-linux-x86_64-ubuntu2004-7.0.5.tgz
是要解压的文件的名称。- 执行该命令后,它将解压缩名为
mongodb-linux-x86_64-ubuntu2004-7.0.5.tgz
的压缩文件。
-
sudo mv /home/mongodb/mongodb-linux-x86_64-ubuntu2004-7.0.5 /usr/local/mongodb
:sudo
是超级用户权限。mv
是 “move” 的缩写,用于移动或重命名文件或目录。/home/mongodb/mongodb-linux-x86_64-ubuntu2004-7.0.5
是源目录或文件的路径。/usr/local/mongodb
是目标路径。- 执行该命令后,它将 MongoDB 目录从
/home/mongodb/mongodb-linux-x86_64-ubuntu2004-7.0.5
移动到/usr/local/mongodb
。
二、增加环境变量
sudo vim /etc/profile
export MONGO_HOME=/usr/local/mongodb
export PATH=$MONGO_HOME/bin:$PATH
-
export MONGO_HOME=/usr/local/mongodb
:export
命令用于设置环境变量。MONGO_HOME
是一个用户定义的环境变量,被设置为/usr/local/mongodb
,即 MongoDB 的安装路径。- 这个环境变量的作用是为了方便后续命令或程序能够引用 MongoDB 安装目录的路径而不需要每次都写完整路径。
-
export PATH=$MONGO_HOME/bin:$PATH
:PATH
是一个特殊的环境变量,包含一系列用冒号分隔的目录路径,系统会在这些路径中查找可执行文件。- 这个命令将之前设置的
MONGO_HOME
的 bin 目录添加到PATH
环境变量中。 - 这样做的目的是为了让系统能够在命令行中直接识别并执行 MongoDB 的可执行文件,而无需提供完整的路径。
三、配置MongoDB
创建数据目录
mkdir /usr/local/mongodb/data
创建日志文件
空文件即可
mkdir /usr/local/mongodb/logs
touch /usr/local/mongodb/logs/mongod.logs
运行
mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/mongod.log --bind_ip 0.0.0.0 --port 27017
mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/mongod.log --bind_ip 0.0.0.0 --port 27017
-
mongod
:这是 MongoDB 数据库服务器的可执行文件。 -
--dbpath /usr/local/mongodb/data
:指定数据库文件存储的路径。在这里,数据库文件将被存储在/usr/local/mongodb/data
目录下。这是 MongoDB 存储数据的位置。 -
--logpath /usr/local/mongodb/logs/mongod.log
:指定 MongoDB 服务器的日志文件路径。在这里,日志文件将被写入到/usr/local/mongodb/logs/mongod.log
。 -
--bind_ip 0.0.0.0
:指定 MongoDB 服务器绑定的 IP 地址。0.0.0.0
表示监听所有可用的网络接口,允许来自任何 IP 地址的连接。 -
--port 27017
:指定 MongoDB 服务器监听的端口号。在这里,服务器将监听默认的 MongoDB 端口号27017
。
我们简单运行起来。
再通过工具连接,就会发现已经连通了。
但是我们这样只要断开运行,mongodb就不会运行了。
所以我们可以将这个命令加入到服务中
四、加入到服务中
sudo vim /etc/systemd/system/mongod.service
[Unit]
Description=MongoDB Database Server
After=network.target[Service]
ExecStart=/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/mongod.log --bind_ip 0.0.0.0 --port 27017
Restart=always
User=root[Install]
WantedBy=multi-user.target
-
Unit 部分:
[Unit]
是一个部分的标头,用于定义服务单元的基本属性。Description
:服务的描述,用于标识服务的用途。在这里,描述为 “MongoDB Database Server”,表示这个服务是 MongoDB 数据库服务器。After=network.target
:指定服务应该在network.target
之后启动。这确保在网络服务准备就绪后才启动 MongoDB 服务。
-
Service 部分:
[Service]
部分定义了服务的具体配置。ExecStart
:指定服务启动时执行的命令。在这里,指定了mongod
可执行文件的路径以及相关的启动参数,如数据存储路径、日志路径、绑定 IP 地址和端口号。Restart=always
:配置服务在失败或退出时自动重启。这有助于确保 MongoDB 一直处于运行状态。User=root
:指定服务运行的用户。在这里,指定为root
用户。请注意,最好使用非特权用户来运行服务,以提高系统安全性。(我这里用于演示,所以使用root,一般情况下需要创建mongdb用户)
-
Install 部分:
[Install]
部分定义了服务的安装相关信息。WantedBy=multi-user.target
:指定服务所属的 target,即希望服务在multi-user.target
启动时运行。multi-user.target
是系统正常运行时的默认目标。
请注意,最好使用非特权用户来运行服务,以提高系统安全性。(我这里用于演示,所以使用root,一般情况下需要创建mongdb用户)
请注意,最好使用非特权用户来运行服务,以提高系统安全性。(我这里用于演示,所以使用root,一般情况下需要创建mongdb用户)
sudo systemctl enable mongod
sudo systemctl start mongod
这两个命令用于管理 Systemd 服务,特别是 MongoDB 服务。下面是每个命令的解释:
-
sudo systemctl enable mongod
:systemctl
是 Systemd 的命令行工具,用于管理系统和服务。enable
命令用于启用服务,使其在系统启动时自动启动。mongod
是服务的名称。在前面的配置文件中,我们定义了一个名为mongod
的 MongoDB 服务单元。- 执行这个命令后,Systemd 将在系统启动时自动启动 MongoDB 服务。
-
sudo systemctl start mongod
:start
命令用于启动服务。执行此命令将立即启动 MongoDB 服务。mongod
是服务的名称,与之前定义的服务单元相对应。- 执行这个命令后,MongoDB 服务将会立即启动,或者如果已经启动过了,它将不会有任何影响。
sudo systemctl status mongod
sudo systemctl status mongod
:systemctl
是 Systemd 的命令行工具,用于管理系统和服务。status
命令用于获取服务的当前状态。mongod
是服务的名称,对应之前定义的 MongoDB 服务单元。sudo
用于以超级用户权限运行命令。
执行这个命令后,系统会显示 MongoDB 服务的当前状态信息,包括是否正在运行、运行时的进程 ID、启动时间等。