官网地址:https://www.mongodb.com/

在官网上选择不同的linux系统得到不同的下载地址,我们用的下载地址是:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz

1.mongodb的安装及连接

cd opt/

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz    #下载

tar zxvf mongodb-linux-x86_64-rhel62-3.4.3.tgz   #解压

cd ../

mkdir -p /usr/local/mongodb   #创建mongodb的安装目录

mv /opt/mongodb-linux-x86_64-rhel62-3.4.3 /usr/local/mongodb  #移动解压文件到安装目录

mkdir -p  /data/mongodb/data   #创建mongodb数据库存放路径

mkdir -p  /data/mongodb/log    #创建mongodb日志存放路径

touch/data/mongodb/log/mongodb.log    #创建mongodb日志文件

/usr/local/mongodb/bin/mongod –dbpath=/data/mongodb/data –logpath= /data/mongodb/log/mongodb.log –logappend –port 27017 --fork

#启动mongodb服务

(注:mongodb默认不需要输入用户名和密码,出于安全考虑,我们可以设置用户名和密码,详见mongodb用户权限管理

./usr/local/mongodb/bin/mongo   #进入mongodb数据库控制台

show dbs#将显示默认数据admin和local

db.shutdownServer()   #关闭mongodb服务

exit#退出控制台

2.参数解释

启动服务时用到的如下:

--dbpath 数据库路径

--logpath 日志文件路径

--logappend 日志在日志文件末尾追加

--port 启用的端口号【可不写,默认是27017】

--fork 让mongodb服务在后台运行

3.创建配置文件及脚本文件

为了更方便的配置及启动数据库,我们可以创建配置文件及脚本文件

touch /usr/local/mongodb/mongodb.conf  #创建配置文件

vi /usr/local/mongodb/mongodb.conf   #编辑

>

#端口

port=27017

#数据文件存放目录

dbpath= /data/mongodb/data

#日志文件路径

logpath=/data/mongodb/log/mongodb.log

#使用追加的方式写日志

logappend=true

#以守护程序的方式启用,即在后台运行

fork=true

#最大同时连接数 默认2000

maxConns=5000

#允许所有IP访问,如果要限制访问,可指定以逗号分隔的ip地址

bind_ip=0.0.0.0

#是否启用身份认证

auth=false

nohttpinterface=true

rest=false

Esc + :wq!  #保存并退出

touch start.sh  #创建启动脚本文件

vi start.sh #编辑

>

#!/bin/sh

bin/mongod -f mongodb.conf

Esc + :wq!  #保存并退出

chmod u+x start.sh  #赋予权限

./start.sh  #执行脚本启动服务

4.非root用户安装mongodb【出于安全考虑】

日常操作中为了避免一些误操作,更加安全的管理系统,通过使用的用户身份都为普通用户,而非root。当需要执行一些管理员命令操作时,再切换成root用户身份去执行。

linux切换用户知识补充:

A.su - (su为switch user,即切换用户的缩写),格式:su -l username(-l为login,即登录的缩写),-l可以将l省略掉,所以此命令常写为su - username。

如果不指定username(用户名),默认即为root,所以切换到root身份的命令即为:su - root 或是直接su -。

通过命令exit或者logout或者ctrl+d返回原用户身份。

B.通过su切换用户还可以直接使用命令su username,与su - username的不同之处如下:

su - username切换用户后,同时切换到新用户的工作环境中。

su username切换用户后,不改变原用户的工作目录及其他环境变量目录。

创建mongo用户:

useradd mongo

passwd mongo

一.从root切换到mongo身份,执行:su - mongo,然后执行以上mongodb的安装流程即可。

二.现在root用户下执行以上mongodb的安装流程,然后给mongodb的安装目录和数据库目录指定mongo用户,再切换到mongo用户,执行数据库连接即可。

chown -R mongo:mongo /usr/local/mongodb

chown -R mongo:mongo /data/mongodb/

如果mongodb服务启动失败,则我们可以查看/data/mongodb/log/mongodb.log日志信息,以找到错误原因来解决问题。

5.远程连接mongodb失败

远程连接失败可能有两个原因:

A.mongodb的配置文件中的bind_ip默认为127.0.0.1,默认只有本机可以连接。解决方案:将bind_ip配置为0.0.0.0,表示接受任何ip的连接;如果要限制访问,可以指定以逗号分隔的多个ip地址。

B.防火墙阻止了27017端口。解决方案:

vi /etc/sysconfig/iptables         // 将27017端口加入防火墙

service iptables restart     // 重启防火墙

或者:

Linux关闭防火墙命令

1) 永久性生效,重启后不会复原

开启:chkconfig iptables on

关闭:chkconfig iptables off

2) 即时生效,重启后复原

开启:service iptables start

关闭:service iptables stop

6.设置开机启动mongodb

A.添加mongodb系统服务:vim etc/rc.d/init.d/mongod

B.输入以下内容:

ulimit -SHn 655350

#!/bin/sh

# chkconfig: - 64 36

# description:mongod

case $1 in

start)

/usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/mongodb.conf

;;

stop)

/usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.auth('root','123456');db.shutdownServer()"

;;

#db.auth('root','123456');当数据库进行了用户认证时,才需要加这一句,root和123456为用户名和密码

status)

/usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"

;;

esac

C.保存完之后,添加脚本执行权限:chmod +x /etc/rc.d/init.d/mongod

D.启动mongodb服务:service mongod start

E.关闭mongodb服务:service mongod stop

F.将此服务设置为开机启动:chkconfig mongod on,然后重新启动机器进行测试。

G.验证mongodb是否启动:lsof -i :27017,检测端口是否在使用中。

7.mongodb添加到环境变量

vi etc/profile  #编辑环境变量文件

export PATH=$PATH:/usr/local/mongodb/bin

Esc + :wq!  #保存并退出

source /etc/profile  #使配置立即生效

mongo#现在在任何目录下执行mongo都可以进入控制台

【最喜欢你一言不合就打赏的样子啦~~~哈哈哈】

linux安装mongodb(设置非root用户和开机启动)的更多相关文章

  1. linux非root用户执行开机启动程序

    问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...

  2. linux指定某非root用户执行开机启动项的方法(gogs git)

    以linux指定git用户在linux开机时执行启动gogs git为例: 以root登录linux 执行vi /etc/rc.d/rc.local 在文档末尾添加一行语句:su git -c &qu ...

  3. 二进制方式安装docker(非root用户启动docker)

    二进制方式安装docker(非root用户启动docker) 一.下载安装包: 地址:https://download.docker.com/linux/static/stable/x86_64/ 这 ...

  4. Linux系统下给非root用户添加sudo权限

    Linux系统下给非root用户添加sudo权限 有时,在linux系统中非root用户运行sudo命令,会提示类似信息:  xxx is not in the sudoers file. This ...

  5. 非root用户随开机而启动mysql服务

    非root用户随开机而启动mysql服务 今天验证了一下,非root用户随开机而启动msyql服务的脚本执行效果,特此简要记录如下: 环境: 192.168.142.130 mysql 5.6.41 ...

  6. 完美解决ubuntu Desktop 16.04 中文版firefox在非root用户不能正常启动的问题

    ubuntu安装好后,默认安装有firefox浏览器,不过,非root的账户登录,双击firefox图标,居然出现如下提示:Your Firefox profile cannot be loaded. ...

  7. 非root用户搭建hadoop伪分布式

    0.安装软件列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar   1.准备Linux环境(root ...

  8. linux非root用户安装jdk1.8

    如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录),然后开始进入linux的非root用户(如w ...

  9. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

随机推荐

  1. 大数据服务大比拼:AWS VS. AzureVS.谷歌

    [TechTarget中国原创] 对于企业用户来说,大数据服务是一项较具吸引力的云服务.三大巨头AWS.Azure以及谷歌都在力争夺得头把交椅,但是最后到底是哪一家能够取得王座之战的胜利呢? 云市场正 ...

  2. CentOS 6.0 VNC远程桌面配置[转]

    原文出处: http://blog.haohtml.com/archives/12281 谢谢作者. 引言:必须明白:vncserver在调用的时候,会根据你的配置来启用server端的监听端口,端口 ...

  3. 《数据结构与算法分析:C语言描述》复习——第六章“排序”——冒泡排序

    2014.06.17 01:04 简介: 冒泡排序是O(n^2)级别的交换排序算法,原理简单,属于必知必会的基础算法之一. 思路: 排序要进行N轮,每一轮从尾部逐个向前扫描,遇到逆序对就进行交换.确保 ...

  4. 剑指Offer - 九度1524 - 复杂链表的复制

    剑指Offer - 九度1524 - 复杂链表的复制2014-02-07 01:30 题目描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点 ...

  5. 《Cracking the Coding Interview》——第17章:普通题——题目8

    2014-04-28 23:35 题目:最大子数组和问题. 解法:O(n)解法. 代码: // 17.8 Find the consecutive subarray with maximum sum ...

  6. spring 笔记2:Spring MVC : Did not find handler method for 问题的解决

    日志显示为: Looking up handler method for path /***Did not find handler method for [/***]No mapping found ...

  7. appium-手势密码实现-automationName 是automator2

    上一篇博客已经说了 appium-手势密码实现-automationName 是Appium的情况 下面就说一下automator2的情况: 手势密码的moveTo方法的参数进行了改变. 参数是相对于 ...

  8. Java基础-7数组

    一).什么是数组: 数组是一组具有相同类型和名称的变量集合,把一系列相同类型的数据保存在一起,这些变量称为数组的元素:每个元素都有一个编号,这个编号叫做下标,下标从 0 开始:元素的个数被称为数组的长 ...

  9. 【志银】NYOJ《题目860》又见01背包

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=860 方法一:不用滚动数组(方法二为用滚动数组,为方法一的简化) 动态规划分析:最少要拿总 ...

  10. hnust 神奇的序列

    问题 E: 神奇的序列 时间限制: 1 Sec  内存限制: 128 MB提交: 635  解决: 84[提交][状态][讨论版] 题目描述        Aurora在南宁发现了一个神奇的序列,即对 ...