CentOS6.5 安装 MongoDB

Stella981
• 阅读 681

根据项目开发环境部署而从网上的博文总结修改而来,实践可行无误

1、下载MongoDB

http://www.mongodb.org/downloads

mongodb-linux-x86_64-3.6.3.tgz  #目前最新版是4.0.0

2、建议关闭selinux

[root@mycentos ~]# vi /etc/selinux/config
 
SELINUX=disabled  

3、关闭防火墙或都增加MongoDB端口

#清空防火墙

[root@mycentos ~]# iptables -F
#增加端口

[root@mycentos ~]# vi /etc/sysconfig/iptables
 
-A RH-Firewall-l-INPUT -P tcp -m tcp --dport 27017(mongoDB端口号) -j ACCEPT    #允许27017端口通过防火墙
 
[root@mycentos ~]# /etc/init.d/iptables restart    #重启防火墙使配置生效
 或

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT  

4、解压MongoDB

[root@mycentos mypackages]# tar xzf mongodb-linux-x86_64-3.2.8.tgz
[root@mycentos mypackages]# mv mongodb-linux-x86_64-3.2.8 /usr/local/mongodb  

5、创建数据库和日志存放路径

[root@mycentos ~]# mkdir -p /data/mongodb_data
[root@mycentos ~]# mkdir -p /data/mongodb_log  

6、启动MongoDB

[root@mycentos ~]# /usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend
[root@mycentos mongodb_log]# netstat -lanp | grep 27017    #查看MongoDB是否启动成功  

7、进行MongoDB控制台

[root@mycentos ~]# cd /usr/local/mongodb/bin/
[root@mycentos bin]# ./mongo  #进入MongoDB数据库控制台
 
> use admin  #进入admin数据库
> db.shutdownServer()  #关闭MongoDB数据库
> exit #退出

 

8、接下来做一个配置文件

[root@mycentos ~]# cd /usr/local/mongodb
[root@mycentos mongodb]# vi mongodb.conf
 
port=27017  #端口号
dbpath=/data/mongodb_data/              #数据库路径,这里最好用绝对路径,不要用../
logpath=/data/mongodb_log/mongodb.log   #日志输出文件路径,这里最好用绝对路径,不要用../
pidfilepath=/usr/local/mongodb/mongo.pid  #这个可以不写
fork=true            #设置后台运行
logappend=true       #日志输出方式
 
:wq #保存退出

 

那么下次启动的时候:

[root@mycentos mongodb]# ./bin/mongod -f mongodb.conf        #启动MongoDB
[root@mycentos mongodb]# ./bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()"  #关闭MongoDB  

9、设置开机启动

[root@mycentos ~]# vi /etc/rc.d/init.d/mongod
#!/bin/sh
# chkconfig: - 64 36
# description:mongod

 
start() {  
/usr/local/mongoDB/mongodbserver/bin/mongod  --config /usr/local/mongoDB/mongodbserver/etc/mongodb.conf #/usr前面不要有空格
}  
  
stop() {  
/usr/local/mongoDB/mongodbserver/bin/mongod --config /usr/local/mongoDB/mongodbserver/etc/mongodb.conf --shutdown  
}

 
status() {  
/usr/local/mongoDB/mongodbserver/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()"
}
case "$1" in start) start ;; stop) stop ;;

 

 
status)  
 status  
 ;;  
restart) stop start ;; *) echo $"Usage: $0 {start|stop|status|restart}" exit 1 esac :wq! #保存退出

[root@mycentos ~]# chmod +x /etc/rc.d/init.d/mongod  #添加脚本执行权限
[root@mycentos ~]# chkconfig mongod on  #设置开机启动
[root@mycentos ~]# service mongod start #启动MongoDB  

10、设置环境变量

[root@mycentos ~]# vi /etc/profile  #添加环境变量
 
export PATH=$PATH:/usr/local/mongodb/bin
:wq! #保存退出
 
[root@mycentos ~]# source /etc/profile  #使配置立即生效
[root@mycentos ~]# mongo  #进入MongoDB控制台,可以直接使用mongodb命令了。

 

11、远程连接

[root@mycentos ~]# cd /usr/local/mongodb/bin/
[root@mycentos bin]# ./mongo  #进入MongoDB数据库控制台
 
> use admin  #进入admin数据库  

1)、创建用户名

查看是否存在用户

db.system.users.find()

如无用户 创建一个 如果有 就删除 

db.system.users.remove({})

首先添加个管理员账号(root权限):

 db.createUser({
    user:"root",
    pwd:"123456",
    roles:[{role:"root",db:"admin"}]
    })
 
添加个普通账号(读写权限): 
(命令中的db 代表用户所分配的数据库)

db.createUser({
                  user:"user",                                   
                  pwd:"123456",
                  roles:[{role:"readWrite",db:"test"}]
             });
 
② 修改配置文件
在conf/mongodb.conf下增加

bind_ip=0.0.0.0  #允许所有ip远程访问
auth=true  #一定要授权登录(需要用户名和密码)  

修改好了后,重启MongoDB,远程连接正常

如果还不行,则需要:

打开防火墙端口

iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT 
暂时关闭selinux

setenforce 0

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这