OS:Ubuntu 22.04 LTS
Welcome to Alibaba Cloud Elastic Compute Service !
Table of Contents
1.在Linux上安装MongoDB,有有两种方式可以选择
1.1 deb安装包安装:类似于window下的下载exe文件,运行安装。
1.2 .tgz tarball:下载源代码,自己编译,自己安装,全程DIY。有网友就是用这种方式安装的,他这么做的原因是选前一种方式安装,他找不到把文件安装到系统中哪些地方去了。所以他自己建数据库和日志目录。
Install using .tgz Tarball on Ubuntu
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu-tarball/
选第一种方式的人一般比较懒。懒的人因为懒,所以会想个办法来解决现有的问题,如果问题被解决了,恰好又被领导认可,在公司里有可能就被总结为创新。创新天天喊,我认为创新就是这么来的。
选第二种方式的人,属于术业有专攻之人,日后定会成为程序员心目中的大神。
2.mongodb有很多版本,Ubuntu也有很多发行版本。
MongoDB 4.2 不支持 Ubuntu 14.04及以下的版本。也不支持WINDOWS SUBSYSTEM FOR LINUX (WSL)。所以安装之前,你的查一查你的Ubuntu是什么版本,需要选择哪个mongodb版本。
Supported Platforms
https://docs.mongodb.com/manual/installation/#mongodb-supported-platforms
3.安装步骤
环境:
Ubuntu releases:22.04 LTS (bionic)
MongoDB Version:MongoDB 7.0 Community Edition
安装方式:使用deb安装包安装
updated:202410
step 1:导入公钥
Ubuntu软件包管理工具(即apt)通过要求分销商使用GPG密钥对软件包进行签名来确保软件包的一致性和真实性。使用以下命令以导入MongoDB公共GPG密钥:
输出
Import the MongoDB public GPG key
step 2:创建源列表文件MongoDB
创建/etc/apt/sources.list.d/mongodb-org-7.0.list
cat /etc/apt/sources.list.d/mongodb-org-7.0.list的内容如下:
come from:https://www.mongodb.com/docs/v7.0/tutorial/install-mongodb-on-ubuntu/
step 3:更新源
sudo 表示以root用户权限执行,如果你已经在root用户下,当然可以直接用apt-get update了。
输出:
step 4:安装MongoDB 包
mongodb-org是一个Metapackage(功能包集,把一些相近的功能模块、 软件包放到一起)。具体包含mongodb-org-server,mongodb-org-mongos,mongodb-org-shell,mongodb-org-tools四个,这四个都会安装在系统中。
中间提示要占用270M磁盘,问你要继续吗?当然选Y(es).所以,你看到网上大多是这样写的:
sudo apt-get install y mongodb-org
那个参数y,就是直接跳过这一步的。
apt-get 安装指定版本的mongodb,如:3.2.9
step 5:启动mongodb
step 6 检查一下mongodb是否启动成功
方式1:看进程
输出
从输出信息可以看出,几个关键信息:
very good。不同版本的mongodb安装到系统里,文件存放在哪里,不用记也不用查,用这种方法都知道了,用不着网上到处查了,查出来结果还不一样,是不是很省事?
方式2:看日志
vi/var/log/mongodb/mongod.log
方式三:看监听端口
在命令行启动mongodb
MongoDB默认文件存储位置目录结构
在/var/lib/mongo目录,
MongoDB默认数据文件存放在/var/lib/momgo目录 。
默认日志文件存在/var/log/mongodb/mongod.log目录。
如需修改可以在/etc/mongod.conf配置文件中指定目录
内容如下:
https://docs.mongodb.com/v4.2/reference/configuration-options/
4.允许外部访问
修改绑定的ip,打开mongod.conf
MongoDB configuration files use the YAML format。YAML does not support tab characters for indentation: use spaces instead.注意空格个数,否则无法启动。
防火墙,就可以通过外部工具连接了
5.安全
权限设置
默认情况下,mongodb的监听端口为27017,无认证,这样很不安全,很容易被勒索的。其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。所以,我们需要设置用户名密码和数据库的访问权限。
1.指定ip地址访问
2.设置用户名和密码
MongoDB的用户分为两种:
1.一种是admin用户,admin用户拥有最高的权限。MongoDB有一个比较奇怪的设置是,即便是一个admin用户,授权也必须在admin数据库下进行,而不能在其他数据库下进行。而授权之后admin用户就可以在任何数据库下进行任何操作了。当MongoDB的admin库里没有任何用户的时候,也就是说整个MongoDB没有一个MongoDB用户的时候,即便–auth权限需求打开了,用户还是可以通过localhost界面进入MongoDB进行用户设置,否则的话整个MongoDB就完全没法访问了。
2.特定数据库用户。特定数据库用户则只能访问特定的数据库。数据库级别的用户在他自己的数据库下授权之后是不能到其他数据库进行操作的
而当这个用户创建完成之后,之后的用户登录和操作就需要授权了,不是直接登录就能使用的了。
启动mongod服务,在sehll中输入命令:
1. 创建一个不受访问限制的超级用户
其他备用命令:
有两种方式进行用户身份的验证
第一种 (类似 MySql)
客户端连接时,指定用户名,密码,db名称
第二种客户端连接后,再进行验证
mongodb访问默认是用当前访问的库作为验证,若要验证通过可以通过两种方法。
1、在连接串上指定验证库,方法就是在连接串上加上authSource=admin,一般使用admin来做验证库
2、为当前的库添加对应的账户、密码和角色,以满足默认验证库为访问库的情况。
官网安装指南:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
MongoDB Manual 7.0:https://www.mongodb.com/docs/v7.0/tutorial/install-mongodb-on-ubuntu/
MongoDB Manual 4.2 Configuration File Options:https://docs.mongodb.com/v4.2/reference/configuration-options/