• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Ubuntu 下安装MongoDB

武飞扬头像
DemoRosie
帮助1

最近由于功能需求,需要使用MongoDB,跟着教程走,需要在linux上安装MongoDB Server,此篇文章,记录一下自己踩过的坑以及相应的解决方案。

1. 下载

MongoDB官网下载相应的安装包

  1. 选择你的操作系统平台与版本
  2. 选择tgz包

学新通

2 安装

  • 使用xftp将文件上传到服务器
    若上传失败,看看是否是要上传到的文件夹没有权限,解决方案
    学新通- 解压压缩包
# 遇到permission denied,行首加上sudo,验证即可
tar -xvf mongodb-linux-x86_64-ubuntu2004-5.0.7.tgz

学新通- 解压完成之后,将压缩包移动到 /usr/local/mongodb

mv mongodb-linux-x86_64-ubuntu2004-5.0.7 /usr/local/mongodb

学新通

  • 在mongodb中创建两个文件夹
#第一个
sudo mkdir data -p
#给该文件夹设置权限
#新上手,所以我创建的文件夹的权限全是777
sudo chmod 777 data
#第二个
sudo mkdir log -p
sudo chmod 777 log
  • 进入data文件夹,再创建一个db文件夹
sudo mkdir db -p
sudo chmod 777 db
  • 进入log文件夹,创建一个mongod.log文件
sudo touch mongod.log
sudo chmod mongod.log
  • 进入mongodb下面的bin文件夹,创建一个mongod.conf文件(配置文件)
sudo touch mongod.conf
# 设置权限之后,直接用文件编辑器编辑配置文件
sudo chmod mongod.conf
  • 编辑配置文件,以下是配置文件内容
#注意,要四个空格,不要tab,否则可能出错
systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    #直接写全,免得出错
    path: "/usr/local/mongodb/log/mongod.log"
    #当mongos或mongod实例重新启动时,
    #mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
    dbPath: "/usr/local/mongodb/data/db"
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    journal:
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
net:
    #服务实例绑定的IP,默认是localhost,
    bindIp: 127.0.0.1,192.168.171.128
    #绑定的端口号,默认是27017
    port: 27017
学新通
  • 保存之后,进入/usr/local/mongodb/bin,输入命令启动mongodb
#命令
./mongod -f mongod.conf

如果启动成功,会出现 successfully
学新通

至此,基础流程就走完一遍了,但在这个过程中遇到了不少问题,以下会列举我所遇到的问题

3. 远程验证链接

在windows上,使用compass,输入服务器ip,点击连接
学新通如果远程连接不上,配置防火墙放行,或者关闭linux防火墙

#查看防火墙状态
systemctl status firewalld
#临时关闭防火墙
systemctl stop firewalld
#开机禁止启动防火墙
systemctl disable firewalld

4.问题

问题一:第一次启动失败,提示:about to fork child process, waiting until server is ready for connections. forked process:XX

搜索了很多篇资料,都让我删除一个.lock文件,但我第一次安装还没运行起来,根本没有这个文件。
在bin目录下使用命令 ./mongod --repaire 尝试修复,发现提示:
**error in initAndListen: NonExistentPath: Data directory /data/db not found., ter...**
判定问题出在这里。

没有找到 data/db文件夹,但我是有这两个目录的,而且配置文件配置的路径也没有问题,再次查询资料,找到了解决方案,我使用的是方法二,运行mongod --dbpath '/usr/local/mongodb/data/db'

然后再次在bin目录下执行 ./mongod -f mongod.conf,运行成功。但我目前仍然不清楚问题所在


问题二:修改了 /etc/profile 的profile文件,导致再次登录的时候,一直反复回到登录界面
解决方案:进入到profile文件,把修改的地方删除。 具体步骤
这里可能不是按 ctrl alt f1,试试f2/f3/....


问题三:不要随意的关闭MongoDB服务,可能导致下次启动失败,解决方案的话,就和之前搜索到的一样了。

1)删除lock文件

rm -f /mongodb/data/db/*.lock

2)修复数据

/usr/local/mongodb/bin/mongod --repair --dbpath=/mongodb/data/db

3)标准的关闭步骤

# 客户端登录服务,此处是通过localhost登录
mongo --port 27017
# 切换到admin库
use admin
# 关闭
db.shutdownServer()

问题四:虚拟机再次开机无网络

解决方案:我使用的是方法二

5. 补充

需要用vi编辑文件,以下是一些vi常用命令
vi常用命令

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcgjeh
系列文章
更多 icon
同类精品
更多 icon
继续加载