一、缘由:
用在线安装的方式安装mongodb,诚然很方便。但文件过于分散,如果在单机多实例的情况下,就不方便管理。
对于数据库的管理,我习惯将所有数据(配置)文件放在一个地方,方便查找区分。
二、解决办法:
1、下载二进制包
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.10.tgz
2、解压并程序更换目录
tar -zxvf mongodb-linux-x86_64-3.2.10.tgz
sudo mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb-3.2.10
sudo chown -R root:root /usr/local/mongodb-3.2.10
3、更改环境变量
为了可以直接在shell下敲mongo进入mongodb,需在/etc/profile中添加
export PATH=/usr/local/mongodb-3.2.10/bin:$PATH
使环境变量生效
source /etc/profile 或者
sudo bash -c "source /etc/profile"
4、添加mongod用户
因为不建议用root启动mongodb,这里用mongod用户启动
sudo groupadd mongod
sudo adduser mongod -g mongod
5、增加配置文件
在程序目录下新增mongodb配置文件mongod_27017.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: /data/mongodb_data/27017/mongod.log # Where and how to store data. storage: dbPath: /data/mongodb_data/27017/data/ journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /data/mongodb_data/27017/mongod.pid # location of pidfile # network interfaces net: port: 27017 bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces. #security: # authorization: enabled #operationProfiling: replication: replSetName: replica_test #sharding: ## Enterprise-Only Options #auditLog: #snmp:
6、创建数据文件目录
sudo mkdir -p /data/mongodb_data/27017/data
sudo chown -R mongod.mongod /data/mongodb_data/27017
7、启动mongodb
启动前需要先安装numactl,使用它启动mongodb,忽略numa架构带来的影响。
sudo yum install numactl -y
sudo su -l mongod -c "numactl --interleave=all mongod -f /usr/local/mongodb-3.2.10/mongod_27017.conf "
或者
sudo su - mongod
numactl --interleave=all mongod -f /usr/local/mongodb-3.2.10/mongod_27017.conf
三、附加内容:
1、进入mongodb后,会看到一些warning信息,需要我们调整一下相应的系统变量,将来才能避免踩到某些坑。
sudo bash -c "echo 0 > /proc/sys/vm/zone_reclaim_mode"
sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
sudo bash -c "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
关于NUMA的Warnging,请用numactl --interleave=all mongod 启动;
关于soft rlimits too low,请调整ulimit -u 数值(用户拥有最大进程数)
2、Centos 6 安装Mongodb方法
1)添加一个yum仓库
sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
2)安装mongodb
sudo yum install -y mongodb-org
3)启动mongodb
sudo service mongodb start