这里有新鲜出炉的 MongoDB 教程,程序狗速度看过来!
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 web 应用提供可扩展的高性能数据存储解决方案。
本篇文章主要介绍了 CentOS 7 下 MongoDB 的安装配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
一、Mongodb 安装
以下安装步骤以 dp 用户执行
1. 下载 mongodb 3.4.2 的安装包:
"mongodb-linux-x86_64-rhel70-3.4.2.tgz",放在~/software 下。
2. 解压该文件包:
- $ cd ~/software
- $ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz
得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的 bin 文件夹包含 Mongodb 的所有可执行文件。
3. 将 bin 文件夹拷贝到 dp 用户的默认可执行文件目录~/bin
- $ mv bin~ /
4. 创建数据库文件夹
创建数据库文件目录,放在~/data/db 下
- $ mkdir - p~ / data / db
启动 mongod 服务
- $ mongod - dbpath~ / data / db - port 7974
如可以启动,则安装成功。如不成功,可能需要进行 SELinux 配置,允许 MongoDB 可以在相应端口启动
- #semanage port - a - t mongod_port_t - p tcp 7974
注:7974 是本项目 MongoDB 使用的端口,代替默认端口 27017
二、MongoDB 配置
1. 写配置脚本:
创建一个脚本 mongod.conf,存放在 / home/dp/data/mongodb/config 下,内容为
- systemLog:
- destination: file
- ###日志存储位置
- path: /home/dp/data/mongodb/log/mongod.log
- logAppend: true
- storage:
- ##journal配置
- journal:
- enabled: true
- ##数据文件存储位置
- dbPath: /home/dp/data/db/
- ##是否一个库一个文件夹
- directoryPerDB: true
- ##数据引擎
- engine: wiredTiger
- ##WT引擎配置
- wiredTiger:
- engineConfig:
- ##WT最大使用cache(根据服务器实际情况调节4~8)
- cacheSizeGB: 4
- ##是否将索引也按数据库名单独存储
- directoryForIndexes: true
- ##表压缩配置,数据压缩算法,可选值"none"、"snappy"、"zlib"
- collectionConfig:
- blockCompressor: none
- ##索引配置
- indexConfig:
- prefixCompression: true
- ##使mongo进程成为系统集成(父id为1)
- processManagement:
- fork: true
- ##端口配置,将默认端口设为7974(默认为27017)
- net:
- port: 7974
2. 取消透明大页:
MongoDB 建议关闭 Linux 系统默认开启的透明大页功能,可编辑 rc.local 文件,使其在系统启动的时候关闭:
编辑 rc.local 文件:
- [root@localhost~]#vim / etc / rc.d / rc.local
增加下列内容:
- if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
- fi
- if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
- echo never > /sys/kernel/mm/transparent_hugepage/defrag
- fi
保存退出,然后赋予 rc.local 文件执行权限:
- [root@fx dp]#chmod + x / etc / rc.d / rc.local
再重启系统即可。
3. 将 MongoDB 设为开机启动
在 CentOS 7 下使用 systemctl 服务管理方式配置 MongoDB 的启动:
CentOS 7 的服务 systemctl 脚本存放在 / usr/lib/systemd/,MongoDB 需要开机不登陆就能运行,就要存在系统服务 / usr/lib/systemd/system 目录下。
每一个服务以. service 结尾,如 mongod.service。内容分为 3 部分:[Unit]、[Service] 和 [Install]
- [Unit]
- Description=MongoDB database server
- After=network.target
- After=syslog.target
- [Service]
- #Type=forking #一次性启动,mongod的后台保持由mongod自己的配置文件中定义
- Type=oneshot
- User=dp
- #PIDFile=/home/dp/data/mongodb/pid
- ExecStart=/usr/bin/numactl --interleave=all /home/dp/bin/mongod -f /home/dp/data/mongodb/config/mongod.conf
- #ExecReload=
- #ExecStop=
- PrivateTmp=true
- [Install]
- WantedBy=multi-user.target
注:MongoDB 建议关闭 NUMA 功能,用 numactl --interleave=all 方式启动 mongod 进程
脚本按照上面编写完成后,以 754 的权限保存在 / usr/lib/systemd/system 目录下,这时就可以利用 systemctl 进行配置:
如果无法启动 MongoDB,可检查日志 / home/dp/data/mongodb/log/mongod.log,如果是由于如下错误:
WiredTiger error (13) [1488260221:910792][6102:0x7f33bf806dc0], file:WiredTiger.wt, connection: /home/dp/data/db/WiredTiger.turtle: handle-open: open: Permission denied
可能是由于 WiredTiger.turtle 的权限不足,或所有者不是 dp 用户,可以用 chmod、chown、chgrp 命令修改该文件的属性。
使用 systemctl enable mongod 就可以将所编写的服务添加至开机启动。
三、MongoDB 的安全配置
1. 修改登陆端口号和 IP
在配置文件 / home/dp/data/mongodb/config/mongod.conf 下,定义:
- net:
- bindIp: 127.0.0.1,192.168.117.55
- port: 79742017/3/8 16:59:55 2017/3/8 16:59:58
2. 添加认证用户
在刚安装完毕的时候,MongoDB 都默认有一个 admin 数据库, 此时 admin 数据库是空的, 没有记录权限相关的信息。当集合 admin.system.users 中一个用户都没有时,即使 mongod 启动时添加了—auth 参数, 如果没有在 admin 数据库中添加用户, 此时不进行任何认证还是可以做任何操作 (不管是否是以—auth 参数启动), 直到在 admin.system.users 中添加了一个用户。加固的核心是只有在 admin.system.users 中添加用户之后,mongodb 的认证, 授权服务才能生效。
步骤一:在未开启认证的环境下,登录到数据库
- [dp@fx] $ mongo 127.0.0.1 : 7974
步骤二:切换到 admin 数据库
- > use admin
步骤三:创建管理员账号
- >db.createUser({user:"ems",pwd:"pubugou2017",roles:["root"]})
新增的用户在 db.system.users 中
- > db.getCollectionNames()
- [ "system.indexes", "system.users", "system.version" ]
说明:
1)MongoDB 从 V3 版本开始取消使用 addUser 方法,采用 db.createUser 方法创建用户;
2) 账号不要设置为常见账号,密码需要满足一定的复杂度,至少 8 位以上,包括大小写字母、数字、特殊字符混合体,不要使用生日、姓名、身份证编号等常见密码。
步骤四:验证用户是否创建成功
- > db.auth("supper","supWDxsf67%H")
- 1
- > exit
- bye
步骤五:杀掉进程,重启 mongoDB 服务
四、Mongodb C drive 安装
1. 下载 Mongodb C 驱动文件解压
下载地址为:mongo-c-driver 1.61
2. 运行配置脚本
- $. / configure–disable - automatic - init - and - cleanup
3. 编译
- $ make
4. 安装
- $ sudo make install
注:使用 sudo 应先对 dp 用户的 sudo 权限进行设置,命令为
- #visudo
或者使用 root 用户
- #make install
安装生成的头文件在 / usr/local/include/libmongoc-1.0 下,库文件在 / usr/local/lib 下。
来源: http://www.phperz.com/article/17/0819/337739.html