mongodb 安装配置实践
admin
2023-04-11 22:43:45
0
  1. 首先从官网下载mongodb的安装包http://www.mongodb.org/downloads我的系统是redhat5.8所有选择相应的版本包就ok现在最新版是3.0.3

  2. 解压mongodb-linux-x86_64-rhel55-3.0.3.tgz

[root@mongodb ~]# tar zxvf mongodb-linux-x86_64-rhel55-3.0.3.tgz -C /opt/
mongodb-linux-x86_64-rhel55-3.0.3/README
mongodb-linux-x86_64-rhel55-3.0.3/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-rhel55-3.0.3/GNU-AGPL-3.0
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongodump
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongorestore
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoexport
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoimport
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongostat
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongotop
mongodb-linux-x86_64-rhel55-3.0.3/bin/bsondump
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongofiles
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongooplog
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoperf
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongod
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongos
mongodb-linux-x86_64-rhel55-3.0.3/bin/mongo
[root@mongodb opt]# ln -sv mongodb-linux-x86_64-rhel55-3.0.3/ mongodb
create symbolic link `mongodb' to `mongodb-linux-x86_64-rhel55-3.0.3/'

3.创建mongodb用户

[root@mongodb /]# useradd mongodb

4.创建相应文件目录并修改权限

[root@mongodb /]# mkdir /data/db -p
[root@mongodb /]# chown mongodb:mongodb /data/ -R
[root@mongodb opt]# chown -R mongodb:mongodb /opt/*

5.添加PATH环境变量在shell下正常访问mongodb的应用工具

[root@mongodb bin]# vim /etc/profile.d/mongodb.sh
export    PATH=$PATH:/opt/mongodb/bin
[root@mongodb bin]# source /etc/profile.d/mongodb.sh 
[root@mongodb bin]# echo $PATH 
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/mongodb/bin

6.创建mongodb的PID存放目录

[root@mongodb run]# mkdir /var/run/mongodb
[root@mongodb run]# chown mongodb:mongodb /var/run/mongodb/ -R
[root@mongodb opt]# mongod --dbpath /data/db/ --logpath /var/log/mongodb.log --logappend --port 27017 --pidfilepath /var/run/mongodb/mongodb.pid --maxConns 250 --rest --httpinterface --fork
about to fork child process, waiting until server is ready for connections.
forked process: 4060
child process started successfully, parent exiting
--maxConns 250 :表示最大连接数是250个
--rest --httpinterface : web接口,指定这项28017端口才能启用
--fork :后台运行

7.安装过程中遇见的问题

装好之后连接出现以下警告

(1).[root@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
Server has startup warnings: 
2015-06-15T20:27:49.892+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2015-06-15T20:27:49.892+0800 I CONTROL  [initandlisten]

出现这个问题就查看关于mongodb的文件权限,主要是/opt /data/db/ /var/run/mongodb/ /var/log/mongodb.log的权限因为启动初始化时以root用户的权限在运行,所以这些目录下的权限可能会变成root root

(2).[mongodb@mongodb db]$  mongod --dbpath /data/db/ --logpath /var/log/mongodb.log --logappend --port 27017 --pidfilepath /var/run/mongodb/mongodb.pid --maxConns 250 --rest --httpinterface --fork


2015-06-15T17:41:25.721+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 

'always'.
2015-06-15T17:41:25.721+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-06-15T17:41:25.721+0800 I CONTROL  [initandlisten] 
2015-06-15T17:41:25.721+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 

'always'.
2015-06-15T17:41:25.721+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

修改两个参数即可

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled 
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

 8.安装成功并登录

 [root@mongodb ~]# ss -tanlp | grep mongod
0      0                              *:27017                         *:*      users:(("mongod",4095,6))
0      0                              *:28017                         *:*      users:(("mongod",4095,8))
 [root@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
> help
    db.help()                    help on db methods
    db.mycoll.help()             help on collection methods
    sh.help()                    sharding helpers
    rs.help()                    replica set helpers
    help admin                   administrative help
    help connect                 connecting to a db help
    help keys                    key shortcuts
    help misc                    misc things to know
    help mr                      mapreduce

    show dbs                     show database names
    show collections             show collections in current database
    show users                   show users in current database
    show profile                 show most recent system.profile entries with time >= 1ms
    show logs                    show the accessible logger names
    show log [name]              prints out the last segment of log in memory, 'global' is default
    use                 set current database
    db.foo.find()                list objects in collection foo
    db.foo.find( { a : 1 } )     list objects in foo where a == 1
    it                           result of the last line evaluated; use to further iterate
    DBQuery.shellBatchSize = x   set default number of items to display on shell
    exit                         quit the mongo shell

登录web接口 28017端口

mongodb 安装配置实践

9.关闭服务器

(1).[root@mongodb ~]# mongod --shutdown 
killing process with pid: 3936
(2).[root@mongodb ~]# killall mongod

10.给mongodb编写配置文件/etc/mongodb.conf

[root@mongodb ~]# grep -v ^# /etc/mongodb.conf 
logpath=/var/log/mongodb.log
logappend=true
fork = true
dbpath=/data/db
pidfilepath = /var/run/mongodb/mongodb.pid
rest = true
httpinterface = true

启动

[root@mongodb ~]# mongod -f /etc/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 4169
child process started successfully, parent exiting
[root@mongodb ~]# ss -tanlp | grep mongod
0      0                              *:27017                         *:*      users:(("mongod",4169,6))
0      0                              *:28017                         *:*      users:(("mongod",4169,8))

11.用service mongodb * 来启动mongodb
启动脚本:/etc/rc.d/init.d/mongod

#!/bin/bash

# mongod - Startup script for mongod

# chkconfig: 35 85 15
# description: Mongo is a scalable, document-oriented database.
# processname: mongod
# config: /etc/mongod.conf
# pidfile: /var/run/mongo/mongod.pid

. /etc/rc.d/init.d/functions

# things from mongod.conf get there by mongod reading it

CONFIGFILE="/etc/mongodb.conf"
OPTIONS=" -f $CONFIGFILE"
SYSCONFIG="/etc/sysconfig/mongod"

DBPATH=`awk -F= '/^dbpath=/{print $2}' "$CONFIGFILE"`
PIDFILE=`awk -F= '/^dbpath\s=\s/{print $2}' "$CONFIGFILE"`
mongod=${MONGOD-/opt/mongodb/bin/mongod}

MONGO_USER=mongodb
MONGO_GROUP=mongodb

if [ -f "$SYSCONFIG" ]; then
    . "$SYSCONFIG"
fi

# Handle NUMA access to CPUs (SERVER-3574)
# This verifies the existence of numactl as well as testing that the command works
NUMACTL_ARGS="--interleave=all"
if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null
then
    NUMACTL="numactl $NUMACTL_ARGS"
else
    NUMACTL=""
fi

start()
{
  echo -n $"Starting mongod: "
  daemon --user "$MONGO_USER" $NUMACTL $mongod $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}

stop()
{
  echo -n $"Stopping mongod: "
  killproc -p "$PIDFILE" -d 300 /opt/mongodb/bin/mongod
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod
}

restart () {
    stop
    start
}

ulimit -n 12000
RETVAL=0

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart|reload|force-reload)
    restart
    ;;
  condrestart)
    [ -f /var/lock/subsys/mongod ] && restart || :
    ;;
  status)
    status $mongod
    RETVAL=$?
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
    RETVAL=1
esac

exit $RETVAL

测试启动

[root@mongodb ~]# service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 4426
child process started successfully, parent exiting
                                                           [  OK  ]
[root@mongodb init.d]# ss -tanlp | grep mongod
0      0                              *:27017                         *:*      users:(("mongod",4426,6))
0      0                              *:28017                         *:*      users:(("mongod",4426,8))                                                    
[root@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
> 
[root@mongodb ~]# service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 4426
child process started successfully, parent exiting
                                                           [  OK  ]

[root@mongodb ~]# service mongod stop
Stopping mongod:                                           [  OK  ]


相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...