Linux 系统安装 mongdb8 全详细安装教程
漫漫编程之路,安装和部署环境是开始也是最重要的一步,遥想多年前刚开始学习Java的时候,一个Java环境的部署就搞了一个多星期,各种问题,简直快被搞疯了。
即使后来安装成功,其实也对其整个过程一知半解。因此每到新电脑需要部署新环境时,痛苦就要重来一遍。
为了自己也为了广大学习编程的童鞋能够走好第一步,特意推出了一系列关于各类编程语言如java/python/nodejs、数据库如mysql/pgsql/mongdb/nodejs 以及各类工具中间件如vscode/navicat/nginx/kafka/docker/等等一些列热门工具的安装教程(主要是针对)!
安装教程最新一期——mongdb8 全教程 讲解,所有在安装过程中遇到的问题都会在本文中找到应对之策。
废话不多说,进入干活阶段,记得点赞收藏!
一、下载
进入mongodb官网安装图示进行下载。
这里下载当前的最新版本也就是8.0.4。(版本更迭会很快,如果安装时候已经迭代了更多版本,并且不想出现异常情况且对数据库新增功能要求不高(毕竟我只想做CRUD,不需要那么多幺蛾子),可以到这里去下载收录的该版本。)
这里有很多坑,mongdb 老版本和新版本 差异巨大(最明显的就是关于mongosh工具的加入),如果在其他地方找到的资料,没有注意版本问题,可能导致自己装的和资料说的不一致的情况。
二、解压安装
在shell面板进行远程下载(当然你下载到本地再上传上去问题不大,就是麻烦)
2.1 下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel8-8.0.4.tgz
2.2 解压并改名
将名字改的简单一点
tar -zxvf mongodb-linux-x86_64-rhel8-8.0.4.tgz
mv mongodb-linux-x86_64-rhel88-8.0.4 mongodb8.4
2.3 创建环境
2.3.1 cd进入 mongodb8.4 之后会发现mongdb8 里面的内容 很少,下面红框中的内容需要自己添加,这涉及到后面的文件配置。
2.3.2 在 里面 新建一个mongdb.conf文件,并复制下面内容:
touch mongdb.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
dbPath: /usr/local/src/mongodb8.4/db
#journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
#enabled: true
# where to write logging data.
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
logAppend: true
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: /usr/local/src/mongodb8.4/log/mongod.log
# network interfaces
net:
port: 1234
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bindIp: 0.0.0.0
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
security:
authorization: enabled
#sharding:
## Enterprise-Only Options:
#auditLog:
这个配置文件是整个安装过程的核心所在。mongdb 现在已经简略到啥也不管啥也不给你配,全部默认,如果没有配置,你可以无密码进入数据库,数据库会存在默认反正你找不到的地方,并且使用的是默认端口 27017, 我敢保证 不出一晚 你的数据库就被黑客 攻击并且给你发邮件。
所以,这个文件里的内容至关重要,核心部分就是三个内容:【数据库位置】 【日志位置】 【端口】
三、配置环境变量并启动
在启动之前,我们要将配置 环境变量,对就是Java 的那个环境变量(任何带bin的编程语言 都一样,反正配置了之后,就可以无缝执行脚本使用了)
vi /etc/profile
在结尾添加好 mongdb 的 环境变量配置(具体位置根据你自己下载的mongdb位置,这个也很容易忽略,还是要提一下)
export MONGODB_HOME=/usr/local/src/mongodb8.4/
export MONGOSH_HOME=/usr/local/src/mongosh2.3/
export PATH=\$PATH:\$MONGODB_HOME/bin:\$MONGOSH_HOME/bin
刷新下:
source /etc/profile
输入mongod 当出现如下内容,表示整个安装过程圆满结束:
四、安装 mongosh
顺利搞定安装之后,接下来就需要搞定账户问题。这也是之前提到的,如果没有账户,你的数据库变得毫无意义,因为你的数据会面临黑客疯狂的攻击。
mongdb 最新版(应该是从4开始) 使用了 mongosh 工具来执行 脚本,其实就是进入数据库内部。只有进入数据库内部我们才能创建账户。
如果使用外部工具如navicat,我们也不需要去安装mongosh 不过建议还是装一下。
进入mongosh官网 下载
安装mongosh的流程 比较简单 只需要配置好环境变量即可,上面已经配好了。执行 mongosh -version出现以下内容表示
五、开启/关闭mongdb服务 创建账户
5.1 无验证启动服务
创建账户之前,必须要“无验证”(注释掉配置文件中的 security 行) 启动 mongdb 服务
# cd 进入 mongdb 数据库位置
mongod --config -f mongodb.conf
5.2 进入数据库并创建管理员账户
mongosh --host localhost --port 1234
成功进入之后,并可以执行 mongdb语句命令了,关于mongdb的 账户权限系统比较细,可以查看结尾部分,咱们首先创建一个管理员账户:
use admin;
db.createUser({user:"admin",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
再创建一个普通用户,并给他赋一个数据库(my_admin)读写权限:
db.createUser({user:"my_admin",pwd:"123",roles:[{role:"readWrite",db:"doc_admin"}]})
管理员账户用来创建普通账户并给普通账户赋权(主要是数据库的读写权限)。
5.3 开启无验证登录
先通过以下命令关闭服务,并取消无验证的配置,然后重新启动:
mongod --shutdown -f mongodb.conf
5.4 验证登录
重启之后,如果要登录管理员账户进行操作,如创建新账户等,可以使用以下命令:
mongosh "mongodb://admin:123@localhost:1234/admin?authSource=admin"
六、关于权限
这里做一个反面示例,查看下面的例子,上面创建一个my_admin的账户 并给其一个 叫做 doc_admin的数据库,当我们创建或打开doc_admin1也就是非doc_admin的数据库时 ,会出现权限不足的错误:
关于mongdb 的账户权限如下,在其他教程里会详细介绍,并介绍关于mongdb的 crud 的 详细过程,这里简略。
数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system