CentOS7.2 64位安装Mongodb4.4.1(详细)

这边我采用yum自动安装,强烈不推荐小白采用压缩包解压自动安装的方式,坑太多了!

环境变量路径介绍

  1. mongodb的bin目录:/etc
  2. mongodb的dbpath:/var/lib/mongo
  3. mongodb的logpath:/var/log/mongodb/mongod.log
  4. mongodb的config路径:/etc

提醒大家使用指令的时候替换成自己的mongodb所在的对应目录!

yum安装

通过连接工具连接服务器,mac端我推荐终端或者termius,window端推荐XShell(收费),当然你可以找不收费的版本!

一、配置mongodb的yum源

相当于配置让yum获取mongodb安装包的途径,同时设置获取的安装包的版本信息!

1.新建mongodb-org-4.4.repo文件

vim /etc/yum.repos.d/mongodb-org-4.4.repo

2.编辑mongodb-org-4.4.repo文件

按i进入inster模式(左下角提示)输入

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

按键盘左上角的esc键退出编辑模式,紧接着英文状态下按:wq(左下角提示)后按下回车进行保存退出。

二、yum进行安装

开始进行安装mongodb的一些相关工具,如果没有问题的话最后会有一个complete的一个因为单词提示安装成功!

sudo yum install -y mongodb-org-4.4.1 mongodb-org-server-4.4.1 mongodb-org-shell-4.4.1 mongodb-org-mongos-4.4.1 mongodb-org-tools-4.4.1

三、遇见问题

如果你上面步骤没有出错这个部分可以跳过,我就是踩了很多坑!

1.运行yum install 命令报错如下: File contains no section headersXXX

出下如此问题最好是检查配置mongodb的yum源文件,如果没错则删除yum.repos.d模块下的文件并重新下载安装!

删除

rm -f /etc/yum.repos.d/

重新下载镜像

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存

yum clean all

如此操作后再次执行sudo yum install -y mongodb-org-4.4.1 mongodb-org-server-4.4.1 mongodb-org-shell-4.4.1 mongodb-org-mongos-4.4.1 mongodb-org-tools-4.4.1通过yum安装mongodb的步骤了!

mongodb的启动关闭重启

1.启动

sudo systemctl start mongod

/usr/bin/mongod --config /etc/mongod.conf //创建用户后的启动方式

启动不成功很大程度上是mongodb没有dbpath和logpath的权限

sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb

2.关闭

sudo systemctl stop mongod

mongod --shutdown --dbpath /var/lib/mongo //设置用户后的关闭方式

3.重启

sudo systemctl restart mongod

4.开机自启动

sudo systemctl enable mongod

5.查看启动状态

sudo systemctl status mongod

6.修复mongodb

使用kill-9强制关闭,很大程度上导致mongodb不能启动,可以使用此命令修复mongodb,真的很艰难!

/usr/bin/mongod -f /etc/mongod.conf --repair

mongodb的简单操作

命令行方式操作数据库

mongo //进入数据库
show dbs //显示所有数据库
use admin //使用操作admin库
show collections //显示库中所有的表
db.createCollection("theme") //库中创建一个theme表
db.theme.insert({"id":"184820911","navbar": "red","num": 9,"fashion":["blue","gold","pink"]}) //表中输入一条记录
db.news.drop() //删除news表
db.dropDatabase() //删除数据库
db.users.update({"id": "xxx"},{$set:{"name": "huasen"}}) //更新users表中的数据
db.school.findOne({"id":3}) //school表中查找


db.createUser({user:"用户名",pwd:"密码",roles:[{role:"root",db:"admin"}]}) // 创建用户

use test  // 跳转到需要添加用户的数据库
db.createUser({
  user: 'fooadmin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'readWrite',  // 角色
    db: 'test'  // 数据库名
  }]
})

show users  // 查看当前库下的用户
db.dropUser('testadmin')  // 删除用户
db.updateUser('admin', {pwd: '654321'})  // 修改用户密码
db.auth('admin', '654321')  // 密码认证


sudo chown -R mongod:mongod /var/lib/mongo
sudo chown -R mongod:mongod /var/log/mongodb


/usr/bin/mongod --config /etc/mongod.conf //创建用户后的启动方式
mongod  --shutdown  --dbpath /var/lib/mongo //设置用户的关闭方式

导出导入数据

mongoexport -d admin -c theme -o /data/backup/theme.json //备份admin库中的theme表中的数据到theme.json文件中
mongoimport -d admin -c themecopy --file /data/backup/theme.json //从theme.json文件中导入数据进入admin库中的themecopy表中

备份恢复

mongodump -d admin -o /data/backup/mongodb  //备份数据
mongorestore -d admincopy --dir=/data/backup/admin //恢复数据

浏览器连接不上问题排查

这个问题折磨我很久,涉及的问题很广,需要耐心排查!

成功实例

通过浏览器访问:ip:27017,mongodb的默认端口是27017。

排查过程

通过如下进行步骤进行排查,希望能给大家再来帮助!

1.查看linux的27017端口是否跑有mongo的相关程序

查看当前所有tcp端口,输入netstat -ntlp查看端口号!

2.查看服务器的对应的安全组端口是否开启

具体操作需要看你的阿里云或者腾讯云的操作了

出站和入站的规则都要开放27017的端口,具体看大家的服务器怎么设置了!

下面给大家参考一下我自己的设置

3.查看服务器防火墙是否打开限制

查看服务器对防火墙对端口是否存在限制,我比较简单粗暴,直接关闭防火墙!

systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0

或者直接查看端口的开放情况

firewall-cmd --query-port=27017/tcp // 查看tcp协议下的27017端口的防火墙设置
firewall-cmd --list-ports // 查看全部端口
systemctl stop firewalld // 关闭防火墙
firewall-cmd --add-port=27017/tcp // 关闭27017的防火墙限制

这个问题防火墙问题的也不太会,不同版本的CentOS版本使用的防火墙应用不一样,具体看大家发挥,欢迎大哥们教教小弟我!

4.查看mongodb的bind_ip属性

bind_ip属性默认是127.0.0.1,默认仅支持服务器内的应用访问,所以我们在浏览器输入连接端口号一直是不可以连接不上,我是直接修改成所有的应用都可以访问连接!就是将bind_ip属性设置成0.0.0.0,那么问题来了,通过yum安装的mongodb怎么能找到mongodb.config文件。一般来说使用yum的rpm安装的包,默认路径如下:

路径文件存放描述
/etc一些安装包配置文件的目录
/usr/bin一些安装包的可执行文件
/usr/lib一些程序使用的动态函数库
/usr/share/doc一些基本的软件使用手册与帮助文档

果然我找到的了那个文件了!

开始修改保存,就成功能够访问了!如果不能还不能访问的话,大兄弟我也帮不你了,建议重开!

寄语

本人只是一个出入社会的小菜鸟,安装mongodb的时候做了比较详细的记录,因为才疏学浅,希望各位大佬别喷,帮到大家的同时,恳求大佬们如果转载的话请注明一下出处!

支持

个人开发了一个资源网址导航网站,很多资源分享,vue项目第一次进会慢一些些,但是过后就很快了,涵盖了生活的方方面面,认真逛逛绝对会有收获,无广告且有软件分享。希望大家支持一下!n.huasenjio.top,如果进不出意外的话我会把这个开源给大家!大家的访问也许对我就是一种鼓励了,谢谢大家!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐