目录:
环境说明:
系统:ubuntu 20.04
MongoDB:V4.4.6
前言
MongoDB是一种面向文档的数据库管理系统,即非关系型数据库,用C++等语言撰写而成,以解决应用程序开发社区中的大量现实问题。MongoDB由MongoDB Inc.(当时是10gen团队)于2007年10月开发,2009年2月首度推出,现以服务器端公共许可(SSPL)分发。
MongoDB社区版是免费的,包含Windows、Linux和OS X的二进制版本。许多Linux包管理系统曾经包含MongoDB的包,由于许可证变更,MongoDB已经从Debian、Fedora和Red Hat Enterprise Linux发行版中被移除。
本篇博客中ubuntu安装MongoDB的过程参考自MongoDB官网:Install MongoDB Community Edition on Ubuntu — MongoDB Manual,其他派系Linux安装MongoDB请参考:Install MongoDB Community Edition on Linux — MongoDB Manual。
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启动成功是这样的:
MongoDB启动之后默认运行在27017端口。其配置文件在“/etc/mongod.conf”,运行端口等信息可在配置文件中修改。
5.管理MongoDB数据库
使用Robo 3T来管理MongoDB数据库,Robo 3T下载地址:Robomongo
开启远程连接之前,我们先要建立一个管理员用户,因为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配置文件中进行一些配置。编辑配置文件:
sudo nano /etc/mongod.conf
这是官网中对于配置文件mongod.conf每一个选项的详细介绍:Configuration File Options — MongoDB Manual。
配置文件中有一项是”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
然后我们就可以用这个用户登录管理数据库了。
更多MongoDB数据库用户的操作请参考:MongoDB添加用户 - MongoDB教程™ (yiibai.com)
打开Robo 3T客户端,新建一个Connection。输入服务器的ip地址或域名,端口填写默认的27017(或者修改之后的端口)。然后切换Authentication选项卡,在第一行前打上勾,输入框中输入用户名密码,填写完之后点击下面Test按钮,若是测试连接无误,点击Save保存下来,就能连接到数据库了。
附:在更改MongoDB连接端口时遇到的坑
MongoDB端口可以在配置文件/etc/mongod.conf进行更改,更改net选项下port的值即可。更改完需要重启MongoDB服务,下次用软件连接数据库时就要更换成更改后的端口。但是用
mongo
命令在控制台上登录数据库时,就会报错:这是因为在用
mongo
命令是依然默认连接的是27017端口,而不是修改之后的端口,因此使用此命令时需要指定端口进行连接:mongo -port 新端口
6.卸载MongoDB
首先停止mongod进程:
# systemed(systemctl):
sudo systemctl stop mongod
# System V Init(service):
sudo service mongod stop
删除以前安装的任何 MongoDB 包:
sudo apt-get purge mongodb-org*
删除 MongoDB 数据库和日志文件:
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongodb
评论 (0)