• 关于在服务器配置MongoDB数据库——从入门到入土


    前言

    之前尝试了好多种方法都卡在奇怪的地方失败了,今天终于成功了,所以来这里记录一下。在这里先提醒各位一定要多建一些快照,要不然的话只能刷机重来,很痛苦。话不多说开始吧:
    首先说下我的配置:
    服务器: CentOS 7.6 64bit
    MongoDB版本:5.0.11

    第一步 安装MongoDB

    1、创建 mongodb yum 源头

    vim /etc/yum.repos.d/mongodb-org-5.0.repo
    
    • 1

    进入编辑页面,在刚刚创建的文件写入下方内容:

    [mongodb-org-5.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、yum 安装

    sudo yum install -y mongodb-org
    
    • 1

    3、启动 mongodb

    sudo systemctl start mongod
    
    • 1

    4、 查看 mongod 状态

    sudo systemctl status mongod
    
    • 1

    5、 设置开机启动

    sudo systemctl enable mongod
    
    • 1

    6、 关闭 mongod

    sudo systemctl stop mongod
    
    • 1

    7、 重启

    sudo systemctl restart mongod
    
    • 1

    至此安装已经完成,开始下一步操作了。

    第二步 端口的配置

    1、首先要检查服务器的端口27017是否已经打开

    2、云服务器中安装MongoDB后,默认绑定IP为 127.0.0.1 ,这就导致外部无法访问,因此要进入 /etc/mongod.conf 文件中修改bindIP为0.0.0.0,绑定公网IP。

    在这里插入图片描述

    第三步 本地连接远程数据库

    1、下载 MongoDB Compass,在新的连接中写入 mongodb://xx.xx.xx.xx:27017 然后连接。
    2、查看结果,如果成功即可使用,失败进行下一步操作。

    其他:解决 mongod.service failed–MongoDB启动失败

    报错详情:
    Job for mongod.service failed because the control process exited with error code.
    See "systemctl status mongod.service" and "journalctl -xe" for details.
    
    • 1
    • 2

    输入 systemctl status mongod.service 会出现如下结果

    ● mongod.service - MongoDB Database Server
       Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
       Active: active (running) since Fri 2021-04-23 09:45:33 CST; 13min ago
         Docs: https://docs.mongodb.org/manual
      Process: 8633 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
      Process: 8631 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
      Process: 8629 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
      Process: 8628 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
     Main PID: 8636 (mongod)
       CGroup: /system.slice/mongod.service
               └─8636 /usr/bin/mongod -f /etc/mongod.conf
     
    Apr 23 09:45:31 VM-4-13-centos systemd[1]: Starting MongoDB Database Server...
    Apr 23 09:45:31 VM-4-13-centos mongod[8633]: about to fork child process, waiting until server is ready for connections.
    Apr 23 09:45:31 VM-4-13-centos mongod[8633]: forked process: 8636
    Apr 23 09:45:33 VM-4-13-centos systemd[1]: Started MongoDB Database Failed.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    解决办法:

    1、进入到/tmp目录并找到mongodb-27017.sock文件

    cd /tmp
    ls -l *.sock
    
    • 1
    • 2

    2、修改文件权限

    chown mongod:mongod mongodb-27017.sock
    
    • 1

    3、重启服务

    systemctl start mongod
    
    systemctl status mongod
    
    • 1
    • 2
    • 3

    至此问题解决,重新使用MongoDB Compass连接查看结果即可。

    安装好以后如果不随意关闭Mongod服务不会出现上文中其他里写的问题,但是改配置需要重启服务,所以这个问题也无法避免,搞了一晚上加一早晨终于找到问题所在,特此记录一下。

    参考链接
    1、CentOS 安装 mongodb
    2、mongodb远程连接出现connect ECONNREFUSED(连接被拒绝)错误的解决方法
    3、mongod.service failed–MongoDB启动失败解决办法

  • 相关阅读:
    关于websocket数据过多造成浏览器卡顿问题
    QGIS展示三维DEM数据
    利用less实现多主题切换(配合天气现象)
    C++函数模板
    linux-免费ssl证书
    论文复现(一)
    【云原生之Docker实战】使用docker部署Memos碎片化知识管理工具
    使用 Vue.js 和 Element Plus 实现自动完成搜索功能
    lint题目120 单词接龙 实现
    Spring基础:注解实现AOP
  • 原文地址:https://blog.csdn.net/qq_43511063/article/details/126565777