Linux下安装MongoDB

安装MongoDB社区版

1.下载编译好的通用软件包

MongoDB的下载中心:https://www.mongodb.com/try/download/community
Linux下安装MongoDB

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/

因为有悔,所以披星戴月;因为有梦,所以奋不顾身! 个人博客首发:easydb.net 微信公众号:easydb 关注我,不走丢!

Linux下安装MongoDB

Linux下安装MongoDB

上一篇:MySQL优化十大技巧


下一篇:Oracle undo 解析