MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案,MongoDB 将数据存储为一个文档,数据结构由键值 (key=>value) 对组成,MongoDB 文档类似于 JSON 对象,字段值可以包含其他文档,数组及文档数组。
一、安装 MongoDB
当前最新稳定版本为4.0.9, 则选择安装最新稳定版的 MongoDB。(官网安装介绍说明)
安装 MongoDB, 会安装软件包 mongodb-org 及其依赖包 mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-tools。
1、配置 MongoDB 的 yum 源
- vim /etc/yum.repos.d/mongodb-org-4.0.repo
创建 MongoDB 软件源文件 /etc/yum.repos.d/mongodb-org-4.0.repo,其内容为:
- [mongodb-org-4.0]
- name=MongoDB Repository
- baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
- gpgcheck=1
- enabled=1
- gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
2、安装 MongoDB
更新 yum 缓存, 并安装 MongoDB
- yum update
- yum install -y mongodb-org
安装完成后,查看 MongoDB 安装位置 whereis mongod ,检查安装版本 mongod --version
- 默认数据位置
- /var/lib/mongo
- 默认日志位置
- /var/log/mongodb
- 配置文件位置
- /etc/mongod.conf
3、修改配置文件
- vim /etc/mongod.conf
将 bindIp: 172.0.0.1 改为 bindIp: 0.0.0.0 ,这样可以使任意IP能链接数据库。
4、外网访问需要关闭防火墙
CentOS 7.0 默认使用的是 firewall 作为防火墙:
- sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
- sudo firewall-cmd --reload
如果你用的是 iptables 防火墙:
- vim /etc/sysconfig/iptables
在 iptables 文件添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
(注意:-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited之前,不然启动无效)
重启 iptables
- service iptables restart
5、设置开机启动
- systemctl enable mongod
6、启动 MongoDB
- systemctl start mongod
- systemctl start mongod // 开启mongod服务
- systemctl restart mongod // 重启mongod服务
- systemctl stop mongod // 停止mongod服务
- systemctl status mongod // 查看mongod服务
二、卸载 MongoDB
1、关闭 MongoDB 服务
- systemctl stop mongod
2、删除安装包
- sudo yum erase $(rpm -qa | grep mongodb-org)
3、删除数据文件
- sudo rm -r /var/log/mongodb
- sudo rm -r /var/lib/mongo
三、服务启动异常问题
我在安装的时候遇到一个错误问题,错误信息如下:
1、查看一下 MongoDB 的 log 日志
- tail -f /var/log/mongodb/mongod.log
其中最关键的一句就是 Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted 没有权限。
2、查看一下 /tmp/mongodb-27017.sock 的读写权限
- ls -l /tmp/mongodb-27017.sock
3、发现该文件夹的所有者为 root
- srwx------ 1 root root 0 Mar 21 09:39 /tmp/mongodb-27017.sock
4、把所有者修改为 mongod
- chown mongod:mongod /tmp/mongodb-27017.sock
5、重新启动 mongo
- systemctl restart mongod
四、数据库管理工具
推荐使用Robo 3T(下载地址)
博主只是一名前端的小白,只是把自己用到的知识分享一下,要是有什么不对的地方,欢迎大家提出~~
评论