下载地址

  1. https://www.mongodb.com/download-center/community

安装

  1. 1.解压
  2. tar -zxvf mongodb-linux-x86_64-3.4.24.tgz
  3. 2.创建2个文件夹,存放数据库和日志
  4. cd mongodb-linux-x86_64-3.4.24
  5. mkdir logs
  6. mkdir datas
  7. 3.开放权限
  8. chmod 777 logs
  9. chmod 777 datas
  10. 4.创建配置文件
  11. cd bin/
  12. vi mongodb.conf
  13. 5.添加配置
  14. port=11111 - //默认服务器端口号
  15. fork=true - //后台运行
  16. dbpath=/application/mongodb-11111/datas - //数据存储目录
  17. logpath=/application/mongodb-11111/logs//mongodb.log - //日志文件 - 提前创建好
  18. logappend=false - //使用追加的方式写日志
  19. maxConns=5000 - //最大同时连接数,默认2000
  20. directoryperdb=true
  21. wiredTigerCacheSizeGB=30
  22. oplogSize=30
  23. bind_ip=0.0.0.0
  24. auth=true
  25. 6.启动mongodb
  26. ./mongod --config mongodb.conf
  27. 7.检查是否启动成功
  28. netstat -anpt | grep mongod
  29. 8.kill方式关闭mongodb
  30. 先获取到pid,能看到2个进程,一个是命令的进程(不用管),另一个是需要结束的进程(带配置文件刚才启动的进程)
  31. ps aux | grep mongod
  32. 然后kill掉进程
  33. kill -2 pid
  34. 9.连接mongodb后,关闭mongodb
  35. use admin
  36. db.shutdownServer(); 或者 db.runCommand("shutdown");

启动多实例

  1. 多台服务器直接按照上面流程安装。
  2. 在单台服务器资源充分的情况下,可以使用多实例,以便充分使用服务器资源。
  3. 1.拷贝mongodb.conf文件
  4. cp mongodb.conf mongodb2.conf
  5. 2.新建文件夹
  6. mkdir logs2
  7. mkdir datas2
  8. 3.修改端口号以及日志和数据库路径等内容
  9. vi mongodb2.conf
  10. 4.启动多实例
  11. ./mongod --config mongodb.conf
  12. ./mongod --config mongodb2.conf
  13. 5.检查启动是否成功
  14. netstat -anpt | grep mongod

Mongodb日志文件过大问题解决

  1. 第一种方式
  2. 进入到mongo的命令行交互程序,输入:
  3. use admin
  4. db.runCommand({logRotate: 1})
  5. 此种方式只能让主mongo的日志滚动。如果是集群部署的话,其他机上的mongo日志并不会滚动。
  6. 这样会使mongo关闭当前日志文件,重启一个新的日志文件,不需要停止mongodb服务。
  7. 第二种方式
  8. Linux的命令上输入如下命令:
  9. ps aux | grep mongo
  10. 找到mongodb的进程ID,记下来。在输入命令:
  11. kill -SIGUSR1 <pid>
  12. 此种方式只能修改当前机器上的mongo日志滚动。如果是集群部署,需要在所有运行mongodb的机上执行此命令。
  13. 第三种方式
  14. 日志分割
  15. mongo默认是没有进行日志分割的,所有的日志持续写到一个文件中。缺点是很明显的,日志文件会越来越大
  16. 在第二种方式的基础上,写一个shell脚本,来分割日志。
  17. 新建脚本mongodb_log_rotate.sh
  18. #!/bin/sh
  19. datafile=/var/run/mongodb
  20. logfile=/var/log/mongodb
  21. days=15
  22. /bin/kill -SIGUSR1 `cat $datafile/mongod.pid`
  23. find $logfile/ -mtime +$days -delete
  24. 然后将脚本加入到定时任务,crontab配置每晚凌晨0点执行
  25. 0 0 * * * /opt/shell/mongodb_log_rotate.sh > /dev/null 2>&1 &