在CentOS7上源码安装MongoDB 3.6.3.md
环境准备
groupadd mongodb
useradd mongodb -g mongodb # 创建用户
passwd mongodb # 设置密码
mkdir -p /data0/mongodb #创建数据存放目录
chown -R mongodb:mongodb /data0/mongodb/ # 修改权限
使用mongodb
mkdir /home/mongodb/apps/ #创建MongoDB程序存放目录
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.3.tgz
安装
tar -xf mongodb-linux-x86_64-rhel70-3.6.3.tgz
mv mongodb-linux-x86_64-rhel70-3.6.3 /home/mongodb/apps/mongodb-3.6.3
ln -s /home/mongodb/apps/mongodb-3.6.3 /home/mongodb/apps/mongodb
mkdir -p /home/mongodb/apps/mongodb/logs/ #创建日志存放目录
为了便于命令启动,需要编辑全局变量PATH
vim ~/.bash_profile
export PATH=$PATH:/home/mongodb/apps/mongodb/bin
source ~/.bash_profile
启动服务
首先查看mongod的帮助信息
[root@snails ~]# pwd
/root/mongodb/bin
[root@snails ~]# vi /etc/profile.d/mongo.sh
[root@snails ~]# source /etc/profile
[root@snails ~]# mongod --help
创建服务文件
在mongodb/conf目录下创建配置文件mongodb.conf
mkdir /home/mongodb/apps/mongodb/conf
cd /home/mongodb/apps/mongodb/conf
vim mongodb.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /home/mongodb/apps/mongodb/logs/mongodb.log
# Where and how to store data.
storage:
dbPath: /data0/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /data0/mongodb/mongodb.pid # location of pidfile
#timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
#security:
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
配置参考链接
启动服务
[root@snails bin]# mongod --dbpath=/data/mongodata --logpath=/data/log/mongolog/mongodb.log --logappend --fork
#通过配置文件启动
[root@snails bin]# /home/mongodb/apps/mongodb/bin/mongod -f /home/mongodb/apps/mongodb/conf/mongodb.conf
netstat -tnlp | grep mongod
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 18093/mongod
测试
[root@snails bin]# mongo
MongoDB shell version: 3.2.7
connecting to: test
Server has startup warnings:
2016-07-07T20:38:09.623+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 15084 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
2016-07-07T20:38:09.624+0800 I CONTROL [initandlisten]
> show dbs
local 0.000GB
> quit()
消除警告
[root@snails bin]# vi /etc/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
ulimit -u 65535
[root@snails bin]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@snails bin]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
Tip:
如果发现加入到/etc/rc.local中的内容在重启后没有生效,检查下rc.local的权限及当前系统运行等级
[root@snails ~]# runlevel
[root@snails ~]# chmod +x /etc/rc.local
文件限制数调整
修改配置文件 /etc/security/limits.conf,添加配置信息:
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000
停止mongodb
正常停止方法: kill -2 PID
>use admin
>db.shutdownServer();
再次验证
[root@snails bin]# mongod -f /root/mongodb/bin/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 18229
child process started successfully, parent exiting
[root@snails bin]# mongo
MongoDB shell version: 3.2.7
connecting to: test
Server has startup warnings:
2016-07-07T21:06:53.798+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2016-07-07T21:06:53.798+0800 I CONTROL [initandlisten]
> exit
bye
服务化
[root@snails data]# cat > /usr/lib/systemd/system/mongod.service << EOF
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongo
Group=mongo
Environment="OPTIONS=-f /home/mongo/apps/mongodb/conf/mongod.conf"
ExecStart=/home/mongo/apps/mongodb/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
EOF
[root@snails data]# systemctl enable systemd-mongodb
- 一、日常运维脚本
- 1.1 批量创建用户并赋予sudo权限
- 1.2 批量主机建立互信
- 1.3create_images.sh
- 1.4monitor.sh
- 1.5ftp脚本
- 1.6格式化分区
- 1.7简单的远程执行脚本
- 二、常用服务使用
- 1 ceph (分布式文件系统)
- 1.1 ceph 简介
- 1.2 准备环境
- 1.3 开始部署
- 1.4 cephfs挂载
- 1.5 RBD块存储
- 1.6 object 对象存储
- 1.7 集群扩展
- 1.7.1 增加删除MON
- 1.7.2 增加删除OSD
- 1.7.3 删除MDS
- 注意事项
- 遇到的问题
- 1.8ceph查找数据文件
- 1.9卸载并清理环境
- 2、mysql (数据库)
- 2.1 搭建
- 2.2 使用教程
- 2.2.1 mysql基础配置
- 2.2.1.1 用户权限管理
- 2.2.1.2用户资源限制
- 2.2.1.3 密码管理
- 2.2.1.4用户lock
- 2.2.2mysql语法详解
- 2.2.1建库、表语句
- 2.2.2.2 插入 insert
- 2.2.2.3更新 update
- 2.2.2.4删除 delete
- 2.2.2.5查询 select
- 2.2.6视图 索引 view index
- 2.2.7 修改 alert
- 2.2.2.8清理 truncate drop
- 2.2.9重命名 rename
- 示例语句
- 2.2.3mysql常用函数
- 2.3.1 对比操作符统概
- 2.3.2对比操作符详解
- 2.3.3逻辑操作符
- 2.2.4分配操作符
- 2.2.5流程控制函数
- 2.2.6字符串函数
- 2.2.7字符串对比函数
- 2.2.8数字函数
- 2.2.9日期和时间函数
- 2.2.10聚合/格式转换函数
- 2.2.11 子查询
- 示例语句
- 2.2.4 mysql 高级应用
- 2.2.4.1 存储过程 函数
- 2.2.4.2流程控制
- 2.2.4.3游标
- 2.2.4.4触发器
- 课堂练习
- 2.2.2.5 数据库设计
- 2.2.5.1 数据类型
- 2.2.5.2存储引擎
- 2.2.6Innodb内核
- 1、innodb事务和多版本控制
- 2、体系结构
- 3、InnoDB配置
- 4、buffer pool设置
- 5、其他配置
- innodb限制
- 2.7 字符集
- 2.8锁机制和事务
- 2.8.1锁机制
- 2.8.2事务
- 2.9分区
- 2.9.1 自动分区
- 2.10复制
- 2.11mysql搬移数据目录
- 2.12组复制 GR
- 简介
- 搭建
- 2.3日常运维
- 2.3.1定时任务
- 2.4mycat
- 2.4.1 报错分析
- 2.4.2 修改字符集
- 2.11 mycat使用
- 2.5遇到问题
- 2.5.1 表名库名忽略大小写
- 3、PAAS平台搭建
- 问题汇总
- 1、docker
- 2、日常运维
- 3.1 Kubernetes
- 3.1 kubernetes 高版本搭建
- 4、GlusterFS搭建
- 5、MooseFS搭建
- 5.1搭建
- 5.2运维
- 5.2.1 mfs日志解析
- 5.2.2清理mfs的垃圾数据
- 5.2.3元数据故障恢复
- 5.2.4 MFS优化
- 5.2.5 配置机架感知
- 5.2.6 客户端工具集
- 6、集群切换命令
- 7、ntp服务
- 8、monggoDB
- 8.1搭建单机
- 2、搭建集群及分片
- 9、MariaDB Galera Cluster
- 9.1源码安装MariaDB
- 9.2galera cluster 优劣
- 9.3 rpm安装mariadb
- 10 HAproxy1.7搭建
- 11、sysbench 搭建使用
- 0.5版本
- 12 percona-xtradb-cluster
- 13http服务相关
- 13.1 http状态码解析
- 14 zookeeper
- 14.1 zookeeper日志查看
- 14.2 配置解析
- 14.3 优化
- 15搭建私有pip源
- 16/var/log的日志文件解释
- 15 ansible的搭建及使用
- 15.1 搭建
- 15.2 使用说明
- 16. 搭建本地yum源
- zookeeper
- 优化
- 四、开发语言
- 1、GO语言
- 1.1go简介
- 1.1.1hello_world初识GO
- 1.1.2并发介绍
- 1.1.3 chan介绍
- 1.1.4多返回值
- 1.2go基础
- 1.2.1数据类型
- 1.2.2 go基础结构
- 1.2.3 const及变量介绍
- 1.2.3os和time介绍
- 1.2.4 字符串
- 1.2.5条件判断
- 1.2.6 homework
- go--help
- 1.3 go基础2
- 1.3.1 数组 array
- 1.3.2切片 slice
- 1.3.3 时间和日期
- 1.3.4指针类型
- 1.3.5函数
- 1.3.6可变参数
- 1.3.7 defer
- 1.3.8递归
- 1.9闭包
- 1.10 map
- 1.11 sort
- 1.12 struct 结构体
- 2.perl语言
- 2.1 安装lib包
- 3 python
- 1.语言基础
- 2、编程教学
- 2.1变量和序列
- 2.2 条件语句