linux安装mongodb(设置非root用户和开机启动)
官网地址: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用户和开机启动)的更多相关文章
- linux非root用户执行开机启动程序
问题 开机启动其他用户的程序或者说非root用户执行开机启动 编写开机启动脚本 编写开机启动脚本apple_tree,放到/etc/init.d,系统启动时会自动执行. 例如,/etc/init.d/ ...
- linux指定某非root用户执行开机启动项的方法(gogs git)
以linux指定git用户在linux开机时执行启动gogs git为例: 以root登录linux 执行vi /etc/rc.d/rc.local 在文档末尾添加一行语句:su git -c &qu ...
- 二进制方式安装docker(非root用户启动docker)
二进制方式安装docker(非root用户启动docker) 一.下载安装包: 地址:https://download.docker.com/linux/static/stable/x86_64/ 这 ...
- Linux系统下给非root用户添加sudo权限
Linux系统下给非root用户添加sudo权限 有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This ...
- 非root用户随开机而启动mysql服务
非root用户随开机而启动mysql服务 今天验证了一下,非root用户随开机而启动msyql服务的脚本执行效果,特此简要记录如下: 环境: 192.168.142.130 mysql 5.6.41 ...
- 完美解决ubuntu Desktop 16.04 中文版firefox在非root用户不能正常启动的问题
ubuntu安装好后,默认安装有firefox浏览器,不过,非root的账户登录,双击firefox图标,居然出现如下提示:Your Firefox profile cannot be loaded. ...
- 非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 ...
- linux非root用户安装jdk1.8
如题,先到 Oracle 官方网站 下载1.8版本的 JDK 压缩包(jdk-8u221-linux-x64.tar.gz)到本地(如D盘的soft目录),然后开始进入linux的非root用户(如w ...
- [转载]Linux下非root用户如何安装软件
[转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...
随机推荐
- iOS远程消息推送原理
1. 什么是远程消息推送? APNs:Apple Push Notification server 苹果推送通知服务苹果的APNs允许设备和苹果的推送通知服务器保持连接,支持开发者推送消息给用户设备对 ...
- 《Cracking the Coding Interview》——第11章:排序和搜索——题目8
2014-03-21 22:23 题目:假设你一开始有一个空数组,你在读入一些整数并将其插入到数组中,保证插入之后数组一直按升序排列.在读入的过程中,你还可以进行一种操作:查询某个值val是否存在于数 ...
- 《Cracking the Coding Interview》——第3章:栈和队列——题目7
2014-03-19 03:20 题目:实现一个包含阿猫阿狗的先入先出队列,我要猫就给我一只来的最早的猫,要狗就给我一只来的最早的狗,随便要就给我一只来的最早的宠物.建议用链表实现. 解法:单链表可以 ...
- 【vim环境配置】在centos6.4上配置vim的一些零碎记录
上一篇日志已经step by step地实录了如何在本机mac上配置vim开发环境已经各种插件. 有了一定经验之后,开始在实验室远程server上centos6.4的环境下配置vim环境. 这台机器是 ...
- flask利用session身份伪造
想研究很久了,这次终于初步了解了flask session伪造(得知道密钥). python2和python3 session解密不一样,而且不都是base64,脚本https://github.co ...
- CSS UNIT 详解以及最佳实践
分类 ■ 绝对长度(Absolute units):cm,mm,in,pt,pc 绝对单位之间的换算:1in = 2.54cm=25.4mm=72pt=6pc 绝对长度在css中的表现和其他地方 ...
- Python利器一之requests
Python利器一之requests 一.教程涉及开发语言.脚本.框架.数据库等内容 Python + requests 通过 pip 安装: pip install requests 通过 easy ...
- 不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答
Part01-Py基础篇(80) Part02-网络编程和并发(34) Part03-数据库和缓存(46) Part04-前端框架和其他(155) Part01-Py基础篇(80) 1.为什么学习Py ...
- 2、shader基本语法、变量类型、shader的三种形式、subshader、fallback、Pass LOD、tags
新建一个shader,名为MyShader1内容如下: 1._MainTex 为变量名 2.“Base (RGB)”表示在unity编辑面板中显示的名字,可以定义为中文 3.2D 表示变量的类型 4. ...
- 系统编程--高级IO
1.非阻塞I/O 非阻塞I/O使我们可以调用不会永远阻塞的I/O操作,例如open,read和write.如果这种操作不能完成,则立即出错返回,表示该操作如继续执行将继续阻塞下去.对于一个给定的描述符 ...