ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 一 mongodb简介 * mongodb的来源 mongo不是芒果的英译,而是从单词`humongous`(巨大的)中间截取的部分单词,寓意它是用来存储大量数据的. mongodb是nosql类型数据库中排名第一的数据库,也是最接近RDBMS的NoSQL数据库 * mongodb数据结构 MongoDB与RDBMS最大的区别在于:没有固定的行列组织数据结构,而是使用`JSON`格式管理数据,存储时使用的是`JSON`的二进制形式`BSON` * MongoDB适用场景 * 网站数据 * 缓存 * 大尺寸、低价值的数据 * 高伸缩性的场景 * 用于对象及JSON数据的存储 * **mongodb与mysql逻辑结构类比** | Mongodb | MySQL | | --- | --- | | 库--database | 库--database | | 集合--collection | 表--table | | 文档--document | 行--row | ## 二 mongoDB单机部署 ### A 关闭大页内存 在生产环境使用mongodb时,最好按官方文档关闭linux的大内存机制,关闭原因和关闭方法详见下方官方文档 : [各系统关系大内存页-官方文档](https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/) ```sh cat >>/etc/profile <<EOF if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]; then echo never >/sys/kernel/mm/transparent_hugepage/enabled fi if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]; then echo never >/sys/kernel/mm/transparent_hugepage/defrag fi EOF source /etc/profile ``` ### B 部署环境 **创建并切换用户** ```sh useradd -u 3003 mongo echo 123456|passwd --stdin mongo su - mongo ``` **创建目录并下载程序** ```sh mkdir -p /server/tools && cd /server/tools/ wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.22.tgz tar xf mongodb-linux-x86_64-rhel70-3.2.22.tgz -C mongodb ``` **移动目录并授权** ```sh mkdir -p /opt/mongodb/{bin,conf,log,data} cp -a /server/tools/mongodb/bin/* /opt/mongodb/bin/ chown -R mongo:mongo /opt/mongodb/ ``` **添加环境变量** ```sh cat >>.bash_profile <<EOF export PATH=/opt/mongodb/bin:$PATH EOF source .bash_profile ``` **命令行启动** ```sh mongod --dbpath=/opt/mongodb/data --logpath=/opt/mongodb/log/mongodb.log --port=27017 --logappend --fork [mongo@noah ~]$ mongo MongoDB shell version: 3.2.22 connecting to: test ``` ### C 创建配置文件并启动 **创建配置文件** ```sh cat >/opt/mongodb/conf/mongodb.conf <<EOF ##系统日志有关 systemLog: destination: file path: "/opt/mongodb/log/mongodb.log" logAppend: true ##数据存储有关 storage: journal: enabled: true dbPath: "/opt/mongodb/data" ##进程控制 processManagement: #后台守护进程方式启动 fork: true ##网络配置有关 net: ##监听地址,默认监听0.0.0.0 #bindIp: 0.0.0.0 #端口号,默认27017 port: 27017 EOF ``` **启动和停止** ```sh mongod -f /opt/mongodb/conf/mongodb.conf mongod -f /opt/mongodb/conf/mongodb.conf --shutdown ```