服务器(CentOS)装置设置mongodb

装置须知

  1. mongo DB下载地点mongodb官网下载
  2. Linux须知学问:

装置历程

  1. 效劳器下载装置包

    • 下载: curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.6.tgz;
    • 解压:tar -zxvf mongodb-linux-x86_64-rhel62-4.0.6/;
    • 移动到须要寄存的目次下mv mongodb-linux-x86_64-rhel62-4.0.6/ /usr/local/mongodb
  2. 设置环境变量:export PATH=/usr/local/mongodb/bin:$PATH,直接实行此敕令,只会建立出暂时的环境变量,即从新断开衔接效劳器后会失效;

    • 环境变量耐久化设置:须要将mongod途径增加到体系途径中,
    1. /etc/profile文件中,增加 export PATH=/usr/local/mongodb/bin:$PATH;
    2. 实行source /etc/profile,使体系环境变量马上见效
  3. 考证是不是装置胜利:mongod --version

    db version v4.0.6
    git version: caa42a1f75a56c7643d0b68d3880444375ec42e3
    OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    allocator: tcmalloc
    modules: none
    build environment:
        distmod: rhel62
        distarch: x86_64
        target_arch: x86_64

mongod启动设置

1. 建立数据库寄存和日记目次

  • 由于MongoDB的数据存储在data目次的db目次下,而该目次在装置历程当中并不会自动建立,所以须要手动建立data目次,并在data目次中建立db目次。
  • mongoDB启动默许运用的数据哭存储目次是根目次/data/db;固然也能够在其他目次下建立,然后经由过程--dbpath来指定;
  • 根目次下建立:mkdir -p /data/db;这里为了后期好查找,就不建立在根目次下,而是放在mongodb目次下/usr/local/mongodb/data/db
  • 日记目次建立/usr/local/mongodb/logs

2. 设置mongod启动文件

  • /usr/local/mongodb/etc下建立设置文件mongod.config:
dbpath=/usr/local/mongodb/data   # 数据库寄存位置(之前建立的)
logpath=/usr/local/mongodb/logs/mongodb.log   # 数据库日记寄存位置(之前建立的)
port=27017
fork=true   #背景运转
auth=false  # 首次设置先关了权限考证上岸形式
journal=false

3. 启动mongod

  • 启动:mongod -f /usr/local/mongod/etc/mongod.config;
  • 进入数据库治理敕令界面:mongo
  • 建立数据库治理角色
db.createUser({user:'root',pwd:'1234567',roles:[{'role':'userAdminAnyDatabase','db':'admin'}]})
  • 运转效果:
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
  • 退出效劳,郑重运用kill直接去杀掉mongodb历程,能够运用db.shutdownServer()封闭.
  • 运用权限体式格局启动MongoDB,在设置文件中增加:auth=true , 然后启动:mongod -f /usr/local/mongod/etc/mongod.config
  • 进入mongo shell,运用admin数据库use admin并举行考证db.auth('root','123456'),考证胜利返回1失利返回0;假如不考证或考证失利,是做不了任何操纵的

4.MongoDB设置为体系效劳而且设置开机启动

  • 在效劳器的体系效劳文件中增加mongod设置:vim /etc/rc.d/init.d/mongod,输入:
start() {
/usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/etc/mongod.config
}

stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongod.config --shutdown
}
case "$1" in
  start)
 start
 ;;

stop)
 stop
 ;;

restart)
 stop
 start
 ;;
  *)
 echo
$"Usage: $0 {start|stop|restart}"
 exit 1
esac
  • 保留并增加剧本实行权限:chmod +x /etc/rc.d/init.d/mongod;
  • 如今能够尝尝运用service mongod [start|stop|restart|try-restart|reload|force-reload| status]来直接治理MongoDB效劳啦;
  • 尝尝封闭效劳:
[lwh@insnce-4ep /]# service mongod stop
2019-03-10T16:45:22.360+0800 I CONTROL  [main] log file "/usr/local/mongodb/logs/mongodb.log" exists; moved to "/usr/local/mongodb/logs/mongodb.log.2019-03-10T08-45-22".
killing process with pid: 10652
  • 尝尝开启效劳:service mongod start;ok!!

5. 当地长途衔接效劳器数据库

  • 衔接敕令:mongo 42.114.29.206:27017/test -u user -p password
  • 报错衔接失利,谢绝衔接;

    • 缘由:云效劳器中装置MongoDB后(默许端口27017),默许绑定IP为127.0.0.1,这就致使外部无法访问;
    • 决解: 修正mongod.config设置文件,增加bind_ip=0.0.0.0绑定公网IP;
    • 重启mongodb效劳service mongod restart
    • 发明报错:
about to fork child process, waiting until server is ready for connections.
forked process: 11300
ERROR: child process failed, exited with error number 48
  • 缘由:应该是之前没有一般封闭mongodb引发的,比方直接 kill -9 <pid>致使;
  • 决解:

    1. 找到data/mongod.lock文件,并删除mongod.lock
    2. 以修复体式格局启动mongodmongod -f usr/local/mongodb/etc/mongod.config --repair;
    3. 再次启动service mongod start

“积跬步、行千里”—— 延续更新中~,喜好的话留下个赞和关注哦!

    原文作者:keywords
    原文地址: https://segmentfault.com/a/1190000018451014
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞