一、MongoDB 的介绍
MongoDB
(来自于英文单词 Humongous
,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB
的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB
能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用 MongoDB
来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。
MongoDB
是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB
能够提供高性能的数据读写操作。 MongoDB
的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。
二、MongoDB 的下载
-
点击此处访问
MongoDB
官网,选择对应的版本进行下载 -
本次演示的版本信息
P.S
-
如果网速不佳的情况下,也可以通过点击此处链接,选择对应的(64位)版本进行下载
-
请确保安装的操作系统选择正确,否则安装包会出现问题,导致无法安装
三、MongoDB 的安装
-
Xshell
登录CentOS
操作系统并进入自定义安装包所在的目录# 进入自定义安装包所在的目录 cd /usr/local/src # 安装 wget 插件 yum install wget -y
-
在自定义安装包所在的目录下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.3.tgz
-
解压安装包到安装目录
mkdir -p /usr/local/mongodb && tar -zxvf mongodb-linux-x86_64-rhel70-4.4.3.tgz -C /usr/local/mongodb --strip-components 1
四、MongoDB 的配置
-
创建数据库目录
# MongoDB 的数据存储在 data/db 目录下,这个目录在安装过程不会自动创建,所以你需要手动创建data/db目录。 mkdir -p /usr/local/mongodb/data/db
-
创建日志目录
# 创建 MongoDB 运行日志存放目录 mkdir -p /usr/local/mongodb/logs # 新建日志文件 cd /usr/local/mongodb/logs && touch mongodb.log
-
创建
mongodb.conf
配置文件# 创建配置目录并创建配置文件 mkdir -p /usr/local/mongodb/conf # 新建配置文件 cd /usr/local/mongodb/conf && touch mongodb.conf
-
编辑配置文件并进行相应的系统配置
# 端口号,默认 27017 port=10002 # 绑定 IP 默认 127.0.0.1 只允许本地连接 bind_ip=0.0.0.0 # 数据目录 dbpath=/usr/local/mongodb/data/db # 每个 DB 存放在独立的目录中 directoryperdb=true # 日志文件 logpath=/usr/local/mongodb/logs/mongodb.log # 设置后台运行 fork=true # 启用日志文件,默认 true journal=true # 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为 false quiet=true # 日志输出方式,默认 true logappend=true # 开启身份验证,默认 false # auth=true
P.S
此处(首次)配置中的权限请先注释掉,方便第一次启动程序时登录数据库设置用户和权限,在默认情况下,
MongoDB
是没有开启安全认证的,但是如果设置了auth=true
,就开启了安全认证,在没有配置用户和密码之前开启安全用户,采用mongo
进行数据库连接则找不到任何默认的数据库。 -
以配置文件启动
mongodb
数据库# 进入 mongodb 安装目录所在的 bin 目录下 cd /usr/local/mongodb/bin # 执行启动命令的同时指定启动配置 ./mongod --config /usr/local/mongodb/conf/mongodb.conf
P.S
停止
MongoDB
命令# 进入 mongodb 安装目录所在的 bin 目录下 cd /usr/local/mongodb/bin # 执行启动命令的同时指定启动配置 ./mongod -shutdown -dbpath=/usr/local/mongodb/data/db
-
连接
mongodb
# 进入 mongodb 可执行目录 cd /usr/local/mongodb/bin # 采用命令行方式连接 ./mongo --port 10002 # 退出登录 exit
P.S
无法连接问题排查:
-
mongodb
配置文件中的bind_ip
默认为127.0.0.1
,默认只有本机可以连接,需要修改为0.0.0.0
接受任何IP
的连接 -
防火墙是否开启配置文件中端口的白名单
-
-
创建管理员密码
-
根据以上操作,我们已经成功连接到
MongoDB
数据库了,但是采用此方式不是建议用于生产环境的,因为这样并不安全。所以我们需要创建一个超级管理员的权限,之后启动及操作数据库都需要授权登录才能进行操作。 -
创建
root
用户用于管理所有的数据库# 选择数据库 use admin # 创建超级管理员用户 db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
-
-
重写配置权限认证并重启
MongoDB
服务-
停止
MongoDB
服务# 进入 mongodb 安装目录所在的 bin 目录下 cd /usr/local/mongodb/bin # 执行启动命令的同时指定启动配置 ./mongod -shutdown -dbpath=/usr/local/mongodb/data/db
-
配置权限认证
# 进入配置文件所在目录并编辑配置文件 vim /usr/local/mongodb/conf/mongodb.conf # 开启权限认证 auth=true
-
启动
MongoDB
服务# 进入 mongodb 安装目录所在的 bin 目录下 cd /usr/local/mongodb/bin # 执行启动命令的同时指定启动配置 ./mongod --config /usr/local/mongodb/conf/mongodb.conf
-
五、MongoDB 的远程
-
开启配置文件中配置的端口
# 查看防火墙状态 systemctl status firewalld # 开启配置文件中的端口供远程访问 firewall-cmd --zone=public --add-port=10002/tcp --permanent # 重新加载防火墙配置使其生效 firewall-cmd --reload # 查看端口号是否开放成功,输出 yes 开放成功,no 则失败 firewall-cmd --zone=public --query-port=10002/tcp # 查看已开发的防火墙列表 firewall-cmd --zone=public --list-ports
-
采用
nosqlbooster
客户端连接数据库
六、MongoDB 自启动
-
设置
MongoDB
启动服务器配置# 在以下固定文件夹目录创建 mongodb.service 文件 vim /usr/lib/systemd/system/mongodb.service
-
在新创建的
mongodb.service
文件中添加如下内容(具体路径根据自己安装包决定)[Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/conf/mongodb.conf PrivateTmp=true [Install] WantedBy=multi-user.target
-
以
754
的权限保存在目录(如果是root
权限进行编辑的情况下,默认保存即可)Esc :wq
chmod 754 mongodb.service
-
使文件生效
systemctl daemon-reload
-
常用操作命令
# 查看服务当前状态 systemctl status mongodb.service # 启动 mongodb 服务 systemctl start mongodb.service # 停止 mongodb 服务 systemctl stop mongodb.service # 重新启动服务 systemctl restart mongodb.service # 设置开机自启动 systemctl enable mongodb.service # 停止开机自启动 systemctl disable mongodb.service # 查看所有已启动的服务 systemctl list-units --type=service