提示:使用本教程可以使用apt软件包管理器在Ubuntu Linux的LTS(长期支持)版本上安装MongoDB 5.0社区版。
MongoDB版本
本教程主要安装MongoDB 5.0社区版。要安装不同版本的MongoDB社区,请参考使用MongoDB官方文档。https://docs.mongodb.com
平台支持
MongoDB 5.0社区版支持x86_64体系结构上的以下64位Ubuntu LTS(长期支持)版本:
20.04 LTS ("Focal")
18.04 LTS ("Bionic")
16.04 LTS ("Xenial")
生产环境需要注意的地方:在生产环境中部署MongoDB之前,先生成注释文档,该文档为MangoDB部署提供性能考虑和配置建议。
安装MongoDB社区版
按照以下步骤使用apt软件包管理器安装MongoDB社区版。
- 导入包管理系统使用的公钥。
键入命令:wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
回车之后将返回OK
但是,如果收到指示未安装gnupg的错误,键入如下命令
sudo apt-get install gnupg
安装后,请重试导入密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
- 为MongoDB在系统中用apt安装创建一个列表文件。
我使用的ubuntu版本是18.04,所以执行如下命令:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
- 重新加载本地包数据库
执行命令:sudo apt-get update
- 安装MongoDB软件包
sudo apt-get install -y mongodb-org
尽管可以指定MongoDB的任何可用版本,但apt get将在更新版本可用时升级软件包。为防止意外升级,可以将软件包固定在当前安装的版本:
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
- 运行MongoDB社区版
注意:从MongoDB 4.4开始,如果打开文件数的ulimit值低于64000,则会生成启动错误。
如果MongoDB通过软件包管理器安装的,则会在安装过程中创建数据目录/var/lib/mongodb和日志目录/var/log/mongodb。
默认情况下,MongoDB使用MongoDB用户帐户运行。如果更改运行MongoDB进程的用户,还必须修改对数据和日志目录的权限,以授予该用户访问这些目录的权限。
官方的MongoDB包包括一个配置文件(/etc/mongod.conf)。这里面有一些设置(如数据目录和日志目录规范)在启动时生效。也就是说,如果在MongoDB实例运行时更改配置文件,则必须重新启动该实例才能使更改生效。
如果需要更改数据库文件的存放目录,则打开该配置文件,修改dbpath的位置,日志目录需要修改也一并修改,修改保存之后要确保文件目录的所属权限为mongodb:mongodb,如下图所示
由于不想将数据库文件和日志文件存放在默认位置,我修改了配置文件,将全部放在/home/username/MongoDB下的db和log目录下,需要将这两个目录的所有权修改为mongodb:mongodb
命令如下 chown mongodb:mongodb db
chown mongodb:mongodb log
- 初始化软件随机启动
要运行和管理mongod进程,您将使用操作系统的内置init系统。最新版本的Linux倾向于使用systemd(使用systemctl命令),而较旧版本的Linux倾向于使用SystemV init(使用service命令)。
如果不确定平台使用的是哪种init系统,请运行以下命令:
ps --no-headers -o comm 1
systemd的方案:
启动服务:
sudo systemctl start mongod
如果收到如下返回信息:
Failed to start mongod.service: Unit mongod.service not found.
执行如下命令
sudo systemctl daemon-reload
然后执行启动服务命令
查看mongodb服务状态
sudo systemctl status mongod
通过如下命令来选择服务随系统启动而启动
sudo systemctl enable mongod
停止服务:
sudo systemctl stop mongod
重启服务:
sudo systemctl restart mongod
System VInit 方案:
启动服务:
sudo service mongod start
查看服务状态
sudo service mongod status
停止服务
sudo service mongod stop
重启服务
sudo service mongod restart
- 使用数据库
直接输入mongo回车,基础命令如下:
show databases
use databases
......