首页 > 数据库 >Linux CentOS7 环境下安装 MongoDB

Linux CentOS7 环境下安装 MongoDB

时间:2024-05-07 16:34:02浏览次数:25  
标签:MongoDB Linux db data local CentOS7 usr mongodb funi

一、环境准备

操作系统:Linux CentOS 7.9
安装包:mongodb-linux-x86_64-rhel70-4.4.29.tgz

二、安装包下载

官网下载地址:https://www.mongodb.com/try/download/community
image

三、软件安装和启动

3.1 将下载好的安装包上传到 Linux 服务器某个目录下,使用以下命令解压压缩包

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.29.tgz

3.2 将解压后的目录移动到 /usr/local 目录下,并改名为 mongodb

mv mongodb-linux-x86_64-rhel70-4.4.29 /usr/local/mongodb

3.3 进入 mongodb 目录,并创建文件夹 data,在 data 文件夹下再创建 db 文件夹(用于存放数据库数据)和 log文件夹(存放 mongo 日志)。然后为其设置可读写权限

# 进入目录
cd /usr/local/mongodb/
# 创建三个文件夹
mkdir data data/db data/log
# 设置可读写权限
sudo chmod 666 data/db data/log/

3.4 在 mongodb 目录下新建配置文件 mongodb.conf(可选,但建议配置),打开文件输入以下内容

# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

3.5 配置环境变量

vi /etc/profile

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile

3.6 完成以上步骤即可启动 Mongo 服务

# -f 等同于--config
# mongod -f /usr/local/mongodb/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1566
child process started successfully, parent exiting

3.7 验证,使用安装目录bin下的mongo客户端命令连接和访问MongoDB,默认会链接到 test 数据库

# mongo

MongoDB shell version v4.4.29
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("10140585-eeaf-4ff7-b160-5aab23f80fe0") }
MongoDB server version: 4.4.29
> db
test

四、配置开机自启动

创建启动用户

groupadd mongodb
useradd  -g mongodb -G wheel -d /home/mongodb -m -s /bin/bash mongodb
passwd mongodb
chown -R mongodb.mongodb /usr/local/mongodb/

创建开机启动文件

vi /usr/lib/systemd/system/mongodb.service

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    User=mongodb
    Group=mongodb
    PIDFile=/usr/local/mongodb/data/db/mongod.lock
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target
systemctl daemon-reload
systemctl start mongodb.service
systemctl restart mongodb.service
systemctl stop mongodb.service

五、用户角色和密码配置

启动 MongoDB 服务默认是没有账号密码的,即连接上即可进行各种操作。
但是我们在启动配置文件中,指定了 auth=true,即开启了认证,所以链接后需要认证才能执行操作。默认情况下,MongoDB 是没有管理员账户的,所以我们需要在 admin 数据库中使用 db.createUser() 命令添加管理员帐号或其他角色。

5.1 内置角色

数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system
# mongo
    > use admin
    > db.createUser({user:"root",pwd:"Funi_R00T",roles:[{role:"root",db:"admin"}]})
    > db.auth("root","Funi_R00T")
    > use funi
    > db.createUser({user:'funi',pwd:'funi.com',roles:[{role:'dbOwner',db:'funi'}]})
    > exit
  # 开启认证后./mongo 进入mongodb后需要认证
  # use admin
  # db.auth("root","Funi_R00T")

六、数据库导入与导出

mongodump和mongorestore工具需要单独下载

mongodump -d funi -o /tmp/funi_mongodb -u funi -p funi.com   备份funi数据库
mongorestore -d funi /tmp/funi_mongodb/* -u funi -p funi.com 恢复funi数据库

标签:MongoDB,Linux,db,data,local,CentOS7,usr,mongodb,funi
From: https://www.cnblogs.com/chunjeh/p/18177685

相关文章

  • [网鼎杯 2020 白虎组]PicDown linux文件工作原理
    今天遇到个毫无头绪的题,记录一下过程。进入页面发现输入框,参数为url,那就试试文件读取。看看环境变量。其中PWD=/app,有可能存在app.py,试试吧。猜对了,运气吧~(做完后才发现的T-T)这里看其他wp说是在linux读取当前进程执行命令/proc/self/cmdline发现了看看app.py吧。点......
  • linux 查看文件是否被占用
    在Linux系统中,若要查看一个文件或目录是否被占用(即是否被进程打开或正在使用),可以使用以下几个命令:方法一:使用lsof命令lsof+D/path/to/directory/or/file这条命令会显示指定目录及其子目录下所有被打开的文件。如果你想查看某个特定文件是否被占用,可以这样操作:lsof/path/......
  • linux网络-网络文件共享服务
    存储类型存储类型分为三种:直连式存储:Direct-AttachedStorage,简称DAS网络附加存储:Network-AttachedStorage,简称NAS存储区域网络:StorageAreaNetwork,简称SAN三种存储架构的应用场景:DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业;NA......
  • Linux: GRUB
     https://docs.fedoraproject.org/en-US/quick-docs/grub2-bootloader/ command:setsetpager=1lssetroot=(hd0,msdos1)insmodlinuxinsmodnormalnormalhelpset GURB_TIMEOUT_STYLE=menu#hiddenGRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed's,rele......
  • Burp Suite Professional 2024.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫
    BurpSuiteProfessional2024.4(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:BurpSuiteProfessional2024.4(macOS,Linux,Windows)-Web应用安全、测试和扫描,查看最新版。原创......
  • AlmaLinux 9.3 x86_64 OVF (sysin) - VMware 虚拟机模板
    AlmaLinux9.3x86_64OVF(sysin)-VMware虚拟机模板由社区提供的免费Linux操作系统,RHEL二进制兼容发行版。请访问原文链接:AlmaLinux9x86_64OVF(sysin)-VMware虚拟机模板,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgAlmaLinuxrelease9.3(Shamroc......
  • Linux非root用户安装mysql(5.7)
    1、下载安装包···········2、安装MySQL解压:tarxzvfmysql-5.7.31-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.31-linux-glibc2.12-x86_64mysql配置my.cnf文件:cat>>my.cnf<<EOF[mysqld]basedir=/app/mysqldatadir=/app/mysql/dataport=3333s......
  • 在Linux中,如何在Linux中配置高可用性(HA)?
    在Linux中配置高可用性(HA)通常涉及设置一个集群环境,使得当主服务节点发生故障时,备用节点能够自动接管服务,从而保证服务的连续性和可靠性。以下是配置高可用性集群的基本步骤,这里以常用的Pacemaker和Corosync组合为例,这是现代LinuxHA解决方案的核心组件:1.环境准备确保网络配置:......
  • linux使用blkid未显示所有设备的UUID
    如题:使用lsblk命令可以看到,服务器存在设备vdb但使用blkid命令,系统未返回所有硬盘的UUID同时,使用lsblk-f命令,可以看到系统返回的设备挂载情况,也没有返回vdb的信息解决方案:查询资料,看到有一个解决方法使用sudoblkid进行查询,发现可以查询到/dev/vdb设备的UUID信息,并且在这......
  • Linux常用命令:echo、cat、tail详解
    Linux常用命令:echo、cat、tail详解Linux常用命令:echo、cat、tail详解在Linux系统中,命令行工具是非常强大的。其中,echo、cat和tail这三个命令在日常的系统管理和文本处理中经常被使用。下面,我们将逐一探讨这三个命令的详细用法和常见示例。1.echo命令echo是一个常用的输出......