设为首页 收藏本站
查看: 903|回复: 0

[经验分享] mongodb 安装配置实践

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-16 09:02:55 | 显示全部楼层 |阅读模式
  • 首先从官网下载mongodb的安装包http://www.mongodb.org/downloads我的系统是redhat5.8所有选择相应的版本包就ok现在最新版是3.0.3
  • 解压mongodb-linux-x86_64-rhel55-3.0.3.tgz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[iyunv@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
[iyunv@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用户
1
[iyunv@mongodb /]# useradd mongodb



4.创建相应文件目录并修改权限
1
2
3
[iyunv@mongodb /]# mkdir /data/db -p
[iyunv@mongodb /]# chown mongodb:mongodb /data/ -R
[iyunv@mongodb opt]# chown -R mongodb:mongodb /opt/*



5.添加PATH环境变量在shell下正常访问mongodb的应用工具
1
2
3
4
5
[iyunv@mongodb bin]# vim /etc/profile.d/mongodb.sh
export    PATH=$PATH:/opt/mongodb/bin
[iyunv@mongodb bin]# source /etc/profile.d/mongodb.sh
[iyunv@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存放目录
1
2
3
4
5
6
7
8
9
[iyunv@mongodb run]# mkdir /var/run/mongodb
[iyunv@mongodb run]# chown mongodb:mongodb /var/run/mongodb/ -R
[iyunv@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
2
3
4
5
6
(1).[iyunv@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
1
2
3
4
5
6
7
8
9
10
11
12
(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'



修改两个参数即可
1
2
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag



8.安装成功并登录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[iyunv@mongodb ~]# ss -tanlp | grep mongod
0      0                              *:27017                         *:*      users:(("mongod",4095,6))
0      0                              *:28017                         *:*      users:(("mongod",4095,8))
[iyunv@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 <db_name>                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端口
wKioL1V-Z8OwoPTiAAdSMuA5uvk007.jpg
9.关闭服务器
1
2
3
(1).[iyunv@mongodb ~]# mongod --shutdown
killing process with pid: 3936
(2).[iyunv@mongodb ~]# killall mongod



10.给mongodb编写配置文件/etc/mongodb.conf
1
2
3
4
5
6
7
8
[iyunv@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



启动
1
2
3
4
5
6
7
[iyunv@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
[iyunv@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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/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



测试启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[iyunv@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  ]
[iyunv@mongodb init.d]# ss -tanlp | grep mongod
0      0                              *:27017                         *:*      users:(("mongod",4426,6))
0      0                              *:28017                         *:*      users:(("mongod",4426,8))                                                   
[iyunv@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
>
[iyunv@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  ]

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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-77797-1-1.html 上篇帖子: mongodb的安装配置与简单使用过程 下篇帖子: mongodb安装配置及副本集的操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表