mongodb源码安装
<div class="document"><h2>1.创建mongodb用户组和用户</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">groupadd mongodb #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">useradd -r -g mongodb -s /sbin/nologin -M mongodb</p>
<h2>2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">cd /usr/local/src #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.0.tgz</p>
<h2>3. 解压源码包</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">tar xvf mongodb-linux-x86_64-rhel62-3.4.0.tgz</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">ls mongodb-linux-x86_64-3.4.0 mongodb-linux-x86_64-3.4.0.tgz</p>
<h2>4. 创建mongodb文件目录</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">mkdir -p /usr/local/mongodb/data //数据库存放目录#</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">mkdir -p /usr/local/mongodb/conf //数据库配置文件存放目录#</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">mkdir -p /var/run/mongodb //数据库pid存放目录#</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">mkdir -p /var/log/mongodb //数据库日志存放目录</p>
<h1>5. 将文件复制到mongodb/目录</h1>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">cp -R mongodb-linux-x86_64-3.4.0/* /usr/local/mongodb</p>
<h2>6. 创建mongodb配置文件mongodb.conf</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">vim /usr/local/mongodb/conf/mongodb.conf #添加配置文件如下(参考副本集搭建)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">bind_ip=172.16.2.246 #指定此mongodb的ip,用于外网通信,本地的话可以设置为127.0.0.1,或者注释掉</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">port = 27017 #端口</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">logpath = /var/log/mongodb/mongodb.log #日志文件路径</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">dbpath = /usr/local/mongodb/data #数据库文件路径</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">pidfilepath = /var/run/mongodb/mongodb.pid #pid文件路径</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">maxConns = 65535 #优化连接数</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">slowms=200 #记录profile分析的慢查询的时间,默认是100毫秒</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">fork = true #以守护进程运行</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">logappend = true #日志追加模式,否则,重启mongo,日志会被覆盖</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">directoryperdb=true #设置为true,修改数据目录存储模式,MongoDB将数据存储在不同的磁盘设备上,以提高写入吞吐量或磁盘容量#注意:要是在运行一段时间的数据库中,开启该参数,会导致原始的数据都会消失(注释参数则会回来)。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">本人配置文件的写法如下:::</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p>bind_ip=192.168.72.141</p>
<p>port=27017</p>
<p>dbpath=/usr/local/mongodb/data/</p>
<p>logpath=/usr/local/mongodb/logs/mongodb.log</p>
<p>pidfilepath=/usr/local/mongodb/mongo.pid</p>
<p>fork=true</p>
<p>logappend=true</p>
<p>shardsvr=true</p>
<p>directoryperdb=true</p>
<p>auth=true</p>
<p>replSet=test</p>
<h2>7. 改mongodb目录权限</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">chown -R mongodb:mongodb /usr/local/mongodb #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">chown -R mongodb:mongodb /var/run/mongodb #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">chown -R mongodb:mongodb /var/log/mongodb</p>
<h2>8. 将mongodb命令加入环境变量,修改profile文件</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">vim /etc/profile# 添加到最后面</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">export PATH=$PATH:/usr/local/mongodb/bin/# source /etc/profile</p>
<h2>9. 将mongodb服务脚本加入到init.d/目录,创建mongod文件</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">cd /etc/init.d/ #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">touch mongod #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">chmod 755 mongod ##赋权</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt pap-hanging-indent-2em"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">或者直接将脚本放到/usr/local/mongodb下面# cd /usr/local/mongodb # touch start.sh# chmod 755 start.sh ##赋权# vim /etc/init.d/mongod ##添加启动脚本#!/bin/sh### BEGIN INIT INFO# Provides: mongod# Required-Start: $local_fs $syslog# Required-Stop: $local_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: # Short-Description: mongodb service### END INIT INFO</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">MONGOD=/usr/local/mongodb/bin/mongod</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">CONFIG=/usr/local/mongodb/conf/mongodb.conf</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">start_mongodb()</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">{</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">ps -ef | grep -v "grep" | grep "$MONGOD"if [ $? -eq 0 ];thenecho "mongodb is in running!"return 0</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">fi$MONGOD --config $CONFIG &</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">}</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">stop_mongodb()</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">{</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">$MONGOD --config $CONFIG --shutdown</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">if [ $? -eq 0 ];thenecho "stop mongodb service successfully!"elseecho "stop mongodb service failed!"fi</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">}</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">query_status()</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">{</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">ps -ef | grep -v "grep" | grep "$MONGOD"if [ $? -eq 0 ];thenecho "mongodb is in running!"elseecho "mongodb is not in running!"fi</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">}</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">case "$1" in</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">start)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">start_mongodb</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">;;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">stop)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">stop_mongodb</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">;;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">restart)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">stop_mongodb</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">start_mongodb</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">;;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">status)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">query_status</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">;;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">*)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">echo "云台温馨提示使用方法: sh start.sh start|stop|restart|status,不涉及kill等强制命令,请放心使用"# echo "云台温馨提示使用方法: service mongod start|stop|restart|status,不涉及kill等强制命令,请放心使用"</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">;;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt pap-hanging-indent-2em">esac</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt pap-hanging-indent-2em">exit 0</p>
<h2>10. 将mongodb加入系统服务</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-12pt pap-spacing-after-10.5pt">如果是将启动脚本放入的init.d目录中,可以加入系统服务。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-12pt pap-spacing-after-10.5pt">chkconfig --add mongod #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-12pt pap-spacing-after-10.5pt">chkconfig mongod on #</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-12pt pap-spacing-after-10.5pt">service mongod start</p>
<h2>11. 防火墙端口允许</h2>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">firewalld规则# firewall-cmd</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">--zone=public --add-port=27017/tcp --permanent # firewall-cmd</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">--reload</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">iptables规则# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT ##普通使用</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">首先,所有访问27017 端口的请求都会被拒绝 ##实际可能的用法# iptables -A INPUT -p tcp --dport 27017 -j DROP</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">当然,自己不能被挡在外面,给自己开个后门# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 27017 -j ACCEPT(出于业务逻辑的需要,有时还需要对服务器的公网IP授权)</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">参考网址 https://my.oschina.net/zhouyuntai/blog/1826182</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt"> </p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">mongodb集群配置格式;</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">说明 config = { } 这是有空格的,{ _id:""} 下划线前面是有空格的。</p>
<p class="paragraph text-align-type-left pap-line-1.3 pap-line-rule-auto pap-spacing-before-0pt pap-spacing-after-0pt">config = { _id:"test",members:[{_id:0,host:"192.168.72.136:27017"},{_id:1,host:"192.168.72.136:27018"},{_id:2,host:"192.168.72.136:27019"}] }</p>
</div><br><br>
来源:https://www.cnblogs.com/yanzi2020/p/14440633.html
頁:
[1]