1. 创建mongodb数据,日志,配置文件存放目录
# mkdir /data
# tar xzf mongodb-linux-x86_64-rhel70-4.0.8.tgz
# mv mongodb-linux-x86_64-rhel70-4.0.8 mongodb
# cd mongodb && mkdir log db config
2. 编辑配置文件
cat >> /data/mongodb/config/mongodb.conf << ENDF
port=27017 # 设置端口号
dbpath=/data/mongodb/db # 设置数据文件,日志文件的存放目录
logpath=/data/mongodb/log/mongodb.log
logappend=true # 使用追加的方式写日志
fork=true # 设置为以守护进程的方式运行,即在后台运行
maxConns=5000 # 最大同时连接数
noauth=true # 不启用验证
journal=true # 每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)
storageEngine=wiredTiger # 存储引擎有mmapv1、wirtiger、mongorocks
bind_ip = 0.0.0.0 # 绑定地址
journalCommitInterval=300 # 刷写提交机制,默认是30ms或则100ms。较低的值,会更消耗磁盘的性能。此选项接受2和300毫秒之间的值:
ENDF
3. 设置环境变量,启动服务
# echo -e "# set mongodb\nexport PATH=/data/mongodb/bin:\$PATH" >> /etc/profile
# source /etc/profile
# mongod --config /data/mongodb/config/mongodb.conf
# echo "mongod --config /data/mongodb/config/mongodb.conf" >>/etc/rc.local
1)正确关闭mongod 的方法:进入mongo shell
ctrl+c 可以退出mongo的界面 或是ext
> use admin
> db.shutdownServer()
也可以按照文档粗暴的杀掉它,它内部应该有KILL信号处理程序。
# killall mongod
请不要 kill -9 ,会造成文件数据混乱丢失 repair 也无力回天。
2)以修复模式启动
# mongod --repair
以修复模式启动数据库。
实际很可能数据库数据损坏或数据状态不一致,导致无法正常启动MongoDB服务器,根据启动信息可以看到需要进行修复。或者执行:
# mongod -f /etc/mongodb.conf --repair
4. 配置文件常用参数:
logappend=true # 以追加方式写入日志
logpath=/data/logs/mongodb.log # 日志文件位置
fork = true # 是否以守护进程方式运行
port = 27017 # 默认27017
dbpath=/data/db # 数据库文件位置
#noauth = true # 是否以安全认证方式运行,默认是不认证的非安全方式
#auth = true # 认证
nohttpinterface = true # 禁用http界面
bind_ip = 0.0.0.0 # 绑定地址。默认127.0.0.1
nojournal=true # 是否开启 journal日志持久存储,journal日志用来数据恢复,是mongod最基础的特性,通常用于故障恢复。64 位系统默认为 true
journalCommitInterval=300 # 刷写提交机制,默认是30ms或则100ms。较低的值,会更消耗磁盘的性能。此选项接受2和300毫秒之间的值:
master = true # master:默认为false,当设置为true,则配置当前实例作为主实例。
slave = true # slave: 默认为false,当设置为true,则配置当前实例作为从实例。
#source = 127.0.0.1:30001 # source:默认为空,格式为:<host><:port>。用于从实例的复制:设置从的时候指定该选项会让从复制指定主的实例
#only = abc # 只同步abc集合(库),only:默认为空,用于从选项,指定一个数据库进行复制。
#slavedelay = 60 # 延迟60s同步主数据,slavedelay:设置从库同步主库的延迟时间,用于从设置,默认为0。
启动报错100,错误信息如下:
ERROR: child process failed, exited with error number 100
如果出现这个错误,是因为没有用正常的方式关闭,进入dbpath目录把mongod.lock删除,然后重新启动就可以了,如果还是不行,把dapath指向一个新目录,删掉mongod.lock在重新启动就可以了。