软件下载
社区版下载地址:https://www.mongodb.com/try/download/community
以下内容以二进制解压包为例介绍,官方文档地址:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat-tarball/
安装前配置
一、系统准备
- redhat或cnetos6.2以上系统
- 系统开发包完整
- ip地址和hosts文件解析正常
- iptables防火墙&SElinux关闭
-
关闭大页内存机制
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag永久关闭大页内存root用户下 在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 其他系统关闭参照官方文档:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
- 修改 vim /etc/security/limits.conf
* - nofile 65535
* - nproc 65536
7.创建所需用户和组
useradd mongod
passwd mongod
8.上传并解压软件到指定位置,设置权限
mkdir /app
cd /app
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz
ln -s mongodb mongodb-linux-x86_64-rhel70-4.4.4
chown -R mongod:mongod -R mongodb*
9.设置用户环境变量
su - mongod
vi .bash_profile
export PATH=/app/mongodb/bin:$PATH
source .bash_profile
单机安装
- 创建目录并赋权
mkdir -p /mongodb/conf mkdir -p /mongodb/log mkdir -p /mongodb/data chown -R mongod:mongod /mongodb
- 编辑配置文件
vim /mongodb/conf/mongodb.conf logpath=/mongodb/log/mongodb.log dbpath=/mongodb/data port=27017 logappend=true fork=true
- 启动数据库
mongod -f /mongodb/conf/mongodb.conf
- 连接数据库
mongo
- 停止数据库
mongod -f /mongodb/log/mongodb.log --shutdown
- systemd管理mongodb
root用户 cat > /etc/systemd/system/mongod.service <<EOF [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] LimitNOFILE=65536 LimitNPROC=65536 User=mongod Type=forking ExecStart=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf --shutdown PrivateTmp=true [Install] WantedBy=multi-user.target EOF #重启 systemctl restart mongod #停止 systemctl stop mongod #启动 systemctl start mongod
- 配置文件(YMAL模式)
https://docs.mongodb.com/manual/administration/configuration/-- NOTE: YAML does not support tab characters for indentation: use spaces instead. --系统日志有关 systemLog: destination: file path: "/mongodb/log/mongodb.log" --日志位置 logAppend: true --日志以追加模式记录 --数据存储有关 storage: journal: enabled: true dbPath: "/mongodb/data" --数据路径的位置 -- 进程控制 processManagement: fork: true --后台守护进程 pidFilePath: <string> --pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中 --网络配置有关 net: bindIp: <ip> -- 监听地址,如果不配置这行是监听在0.0.0.0 port: <port> -- 端口号,默认不配置端口号,是27017 -- 安全验证有关配置 security: authorization: enabled --是否打开用户名密码验证 ------------------以下是复制集与分片集群有关---------------------- replication: oplogSizeMB: <NUM> replSetName: "<REPSETNAME>" secondaryIndexPrefetch: "all" sharding: clusterRole: <string> archiveMovedChunks: <boolean> ---for mongos only replication: localPingThresholdMs: <int> sharding: configDB: <string> -- ++++++++++++++++++++++ YAML例子 cat > /mongodb/conf/mongo.conf <<EOF systemLog: destination: file path: "/mongodb/log/mongodb.log" logAppend: true storage: journal: enabled: true dbPath: "/mongodb/data/" processManagement: fork: true net: port: 27017 bindIp: 11.111.24.4,127.0.0.1 EOF