安装MongoDB社区版
1.下载编译好的通用软件包
MongoDB的下载中心:https://www.mongodb.com/try/download/community
2.安装所需的依赖
sudo yum install -y libcurl openssl xz-libs
3.关闭大页内存机制(THP)
3.1 为什么要关闭?
透明大页面(THP)是一种Linux内存管理系统,它通过使用较大的内存页面来减少具有大量内存的计算机上的转换后备缓冲区(TLB)查找的开销。
但是,启用THP时,数据库工作负载通常表现不佳,因为它们往往具有稀疏而不是连续的内存访问模式。在Linux上运行MongoDB时,应禁用THP以获得最佳性能。
参照官网使用谷歌翻译的,原文地址:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
3.2 创建一个systemd
来管理
vim /etc/systemd/system/disable-transparent-huge-pages.service
[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null'
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null'
[Install]
WantedBy=basic.target
3.3 启动关闭(THP)的服务
加载systemd文件
sudo systemctl daemon-reload
启动服务
sudo systemctl start disable-transparent-huge-pages.service
加入开机启动
sudo systemctl enable disable-transparent-huge-pages.service
3.4 检查是否成功关闭(THP)
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] # 禁用状态
[always] madvise never # 启用状态
4.MongoDB安装
4.1 创建mongo用户
useradd -s /sbin/nologin mongo
4.2 创建mongodb所需目录结构
mkdir -p /data/mongodb/{conf,log,data,bin}
4.3 解压并移动到指定目录
将安装包解压到指定目录
tar xf mongodb-linux-x86_64-rhel70-3.6.21.tgz -C /data/mongodb
移动到bin目录下
mv /data/mongodb/mongodb-linux-x86_64-rhel70-3.6.21/bin/* /data/mongodb/bin/
4.4 添加mongo用户环境变量
echo 'export PATH=$PATH:/data/mongodb/bin/' >> /etc/profile
source /etc/profile
检查一下看环境变量是否生效
mongo --version
MongoDB shell version v3.6.21
4.5 YAML格式配置文件讲解
--系统日志有关
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log" --日志位置
logAppend: true --日志以追加模式记录
--数据存储有关
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data" --数据路径的位置
-- 进程控制
processManagement:
fork: true --后台守护进程
pidFilePath: <string> --pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中
--网络配置有关
net:
bindIp: <ip> -- 监听地址,如果不配置这行是监听在0.0.0.0
port: <port> -- 端口号,默认不配置端口号,是27017
-- 安全验证有关配置
security:
authorization: enabled --是否打开用户名密码验证
4.6 YAML配置文件示例
cat > /data/mongodb/conf/mongo.conf <<EOF
systemLog:
destination: file
path: "/data/mongodb/log/mongodb.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/data/mongodb/data/"
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
EOF
4.7 设置目录权限
chown -R mongo. /data/mongodb
4.8 使用配置文件启动/关闭
使用配置文件启动
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf
about to fork child process, waiting until server is ready for connections.
forked process: 40813
child process started successfully, parent exiting
[root@mongodb ~]# netstat -lnptu | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 40813/mongod
登陆
[root@mongodb ~]# mongo
MongoDB shell version v3.6.21
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ce5902e2-c166-4b09-a9d5-19e6549fb5d4") }
MongoDB server version: 3.6.21
>
>
关闭
[root@mongodb ~]# mongod -f /data/mongodb/conf/mongo.conf --shutdown
killing process with pid: 40813
4.9 使用systemctl命令管理服务
cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongo
Type=forking
ExecStart=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/data/mongodb/bin/mongod --config /data/mongodb/conf/mongo.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
基于systemctl管理
systemctl daemon-reload
systemctl start mongod.service
systemctl stop mongod.service
5.MongoDB常用基本操作
5.1 mongodb 默认存在的库
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
5.2 帮助命令
help
KEYWORDS.help()
KEYWORDS.[TAB]
db.help()
db.a.help()
rs.help()
sh.help()
5.3 常用操作
--查看当前db版本
test> db.version()
--显示当前数据库
test> db
test
或
> db.getName()
test
--查询所有数据库
test> show dbs
– 切换数据库
> use local
switched to db local
- 查看所有的collection
show tables;
– 显示当前数据库状态
test> use local
switched to db local
local> db.stats()
– 查看当前数据库的连接机器地址
> db.getMongo()
connection to 127.0.0.1
指定数据库进行连接
默认连接本机test数据库
6.其它安装方法
更多安装方法可以参考官网:https://docs.mongodb.com/manual/administration/install-on-linux/