环境说明:
系统:ubuntu 20.04
MongoDB:V4.4.6
1、导入MongoDB公共 GPG 密钥
用以下命令从 https://www.MongoDB.org/static/pgp/server-4.4.asc
导入MongoDB公共GPG密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
出现OK字样表示导入成功。若中途提示gnupg未安装,用以下命令安装:
sudo apt-get install gnupg
安装之后尝试重新导入,直至出现OK字样。
2、创建列表文件
在 ubuntu上 创建列表文件 /etc/apt/sources.list.d/mongodb-org-4.4.list
,不同版本的ubuntu命令也不同(其实只是命令中的版本号不同):
# Ubuntu 20.04 (Focal):
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# Ubuntu 18.04 (Bionic)
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# Ubuntu 16.04 (Xenial)
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
若不确定系统版本号,用 lsb_release -a
命令查看, Codename
一项即是版本号
3、用命令安装MongoDB
3.1 安装最新版本
输入以下命令安装MongoDB
,默认安装最新版:
# 更新软件源中的所有软件列表:
sudo apt update
sudo apt-get install -y mongodb-org
3.2 安装指定版本
如果要安装指定版本,必须分别指定每个组件包和版本号,比如:
sudo apt-get install -y mongodb-org=4.4 mongodb-org-server=4.4 mongodb-org-shell=4.4 mongodb-org-mongos=4.4 mongodb-org-tools=4.4
如果只安装MongoDB-org = 4.4,并且不包含组件包,那么无论指定了哪个版本,都将安装每个 MongoDB 包的最新版本。
在安装完指定的MongoDB版本后,用apt命令升级软件时仍会升级到新版本的MongoDB。因此为了防止意外升级,可以将软件包固定在当前安装的版本上:
echo "mongodb-org 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
4.启动MongoDB
要运行和管理mongod进程,将使用操作系统内置的init系统。Linux的新版本倾向于使用systemd(使用 systemctl 命令) ,而Linux的旧版本倾向于使用System v init(使用service命令)。这就导致不同的init系统操作mongod进程的命令不同,请根据系统的不同来使用。
如果不确定平台使用的是哪个init系统,请运行以下命令:
ps --no-headers -o comm 1
然后根据结果选择下面的相应命令:
systemd
- 选择4.1 systemd (systemctl) 。
init
- 选择4.2 System V Init (service)。
4.1 systemed(systemctl):
# 启动MongoDB:
sudo systemctl start mongod
# 并将其加入开机启动项:
sudo systemctl enable mongod
# 用以下命令验证MongoDB是否启动运行成功:
sudo systemctl status mongod
# 停止MongoDB:
sudo systemctl stop mongod
# 重新启动MongoDB:
sudo systemctl restart mongod
若启动时,出现错误:Failed to start mongod.service: Unit mongod.service not found
,则运行以下命令:
sudo systemctl daemon-reload
然后再次运行start命令即可:
sudo systemctl start mongod
4.2 System V Init(service):
# 启动MongoDB:
sudo service mongod start
# 用以下命令验证MongoDB是否启动运行成功:
sudo service mongod status
# 停止MongoDB:
sudo service mongod stop
# 重新启动MongoDB:
sudo service mongod restart
MongoDB启动之后默认运行在27017端口。其配置文件在/etc/mongod.conf
,运行端口等信息可在配置文件中修改。
找不到的话找一下。
whereis mongod
5.管理MongoDB数据库
开启远程连接之前,我们先要建立一个管理员用户,因为MongoDB默认是没有用户的。在控制台输入命令连接数据库:
mongo
# 如果更改了默认连接端口,则在连接时还需要指定连接端口
mongo -port 端口号
连接到数据库之后使用以下语句来建立一个管理员用户:
# 选择连接admin数据库
use admin
# 创建一个用户名为“root”,密码为“1234”管理员用户:
db.createUser(
{
user:"root",
pwd:"1234",
roles:[{role:"root",db:"admin"}]
}
)
创建成功的话会有 successfully
字样提示。使用 db.getUsers()
命令可以查询当前所有用户。
默认情况下,MongoDB
是不允许远程连接的,所以需要在/etc/mongod.conf
配置文件中进行一些配置。编辑配置文件:
配置文件中有一项是net
,下面的bindIp
一项的值原来是127.0.0.1
,表示只能由本机访问MongoDB数据库,为了能远程访问管理数据库,需要将这项的值修改为0.0.0.0
net:
port: 27017
- bindIp: 127.0.0.1
+ bindIp: 0.0.0.0
同时,此时的数据库任何人使用任何网络都能连接,极度不安全。因此我们需要开启安全授权,同样的,在配置文件/etc/mongod.conf
中添加如下内容:
security:
authorization: "enabled"
修改完之后保存退出,然后重启mongod
服务:
sudo systemctl restart mongod
然后我们就可以用这个用户登录管理数据库了。