在阿里云centos下部署mongodb教程

本教程是在阿里云centos下部署mongodb的过程,整个过程遇到不少坑,浪费了很多时间。在网上查了很多教程,但是由于教程大多太久了,环境都不一样了,所以教程绝大部分走不通。为此走过不少坑,所以在此做一下记录。

环境:

系统:阿里云centos 7.3 64位

mongodb版本: 3.4

因为使用yum安装非常方便,所以下文使用yum安装,。

修改yum包管理配置:

vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 会自动新建mongodb-org-3.4.repo文件

复制下面配置信息:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1

tips: 不懂linux去恶补下基础知识(vi 编辑器)

安装mongodb

yum install -y mongodb-org   // 一路yes安装mongodb

启动mongodb

systemctl start mongod.service  // 启动mongodb

停止mongodb

systemctl stop mongod.service  // 停止mongodb

重启mongodb

systemctl restart mongod.service  // 重启mongodb

设置mongodb开机启动

systemctl enable mongod.service   // 设置开机启动

tips: centos 7将service命令 改为systemctl。

mongodb安装成功,默认配置文件路径为:/etc/mongod.conf。执行cat /etc/mongod.conf,查看文件的配置。

配置文件是yaml 语法:

systemLog:
 destination: file
 logAppend: true
 path: /var/log/mongodb/mongod.log // 日志文件储存路径

storage:
 dbPath: /var/lib/mongo  // 数据储存路径
 journal:
 enabled: true

你也可以更改储存路径,更改路径时因先新建相关文件夹和文件,这里不做修改。

本地连接mongodb:

mongo    // 连接本地mongodb
show dbs   // 查看所有数据库
use mydb   // 切换mydb数据库,没有会自动添加
show collections // 查看集合

默认情况下,mongodb是没有安全验证的,都可以连接到该数据库。因为mongodb要求是部署在一个安全的环境中,而不需要验证。

远程连接:

在本地window中,打开cmd,执行mongo 192.168.31.54 (192.168.31.54为你的阿里云服务器外网地址),发现连接不上,网上找了很长时间,终于解决了。

1、在阿里云esc实例中设置安全组,把27017端口开放,mongodb 默认端口为27017,阿里云为了安全端口默认都是关闭的。

2、修改mongodb配置文件:

vi /etc/mongod.conf   // 编辑配置文件

net:
 port: 27017
 bindIp: 127.0.0.1 // mongodb 默认绑定的IP地址

默认情况下,阿里云只绑定了127.0.0.1本地地址,只能本地访问,需要在上面加上阿里云内网地址。
bindIp: 127.0.0.1,阿里云内网地址

重启mongodb服务器:
systemctl restart mongod.service

在本地cmd中再执行
mongo 阿里云外网地址  // 发现现在可以连接上了。

到此本地和远程都可以连接上mongodb了,远程可以用可视化工具Robomongo连接,直接输入阿里云外网地址和端口号27017即可以远程连接成功。虽然远程可以连接上mongodb,但是只要知道阿里云外网地址,谁都可以通过远程连接到数据库,并且修改数据库了的数据,这样是非常不安全的。所以实际部署中是不建议bindIp里面加上阿里云内网地址的,只能通过本地访问。远程连接只是为了能方便用可视化工具Robomongo方便管理数据库。如果要想用Robomongo,又想数据库不能随便被别人连接上可以吗?当然可以,只需开启身份认证。

默认情况下mongodb是关闭身份认证的,开启身份认证需如下步骤:

1、修改mongodb配置文件

vi /etc/mongod.conf    // 编辑mongod.conf文件

security:      // 去掉security前面#
 authorization: enabled  // 添加这句开启认证

在网上看了很多教程关于开启身份认证的,使用auth=true发现不行,后来才知道是教程太老了,配置字段都变了,坑的我找了很长时间。

2、添加超级管理员

默认Mongodb是没有管理员等用户信息的,开启身份认证是需要添加用户信息验证。首先添加的应该是admin数据库里的管理员账号,他用于其他数据库的用户添加、修改、删除等一些权限控制。

执行如下操作:

mongo     // 本地连接数据库
use admin    // 切换到admin数据库,没有会自动添加
db.createUser(   // 创建管理员用户
 {
 user: "admin",  // 账号
 pwd: "admin",  // 密码
 roles: [ { role: "root", db: "admin" } ] // 角色:超级管理员,数据库:admin
 }
)

创建成功后会输出Successfully added user。。。

重启mongodb

systemctl restart mongod.service

执行

mongo      // 连接数据库
show dbs     // 显示所有数据库,这步会报错,说没有通过验证。
use admin     // 切换到admin数据库
db.auth('admin','admin') // 用上面设置的账号密码登录

如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败

身份验证开启了,在window端cmd中执行下面命令
mongo 阿里云外网地址           // 发现连接失败,因为没有通过验证。
如果执行下面这句
mongo 阿里云外网地址 -u "admin" -p "admin" --authenticationDatabase admin 
// 发现连接成功

Robomongo身份认证连接:

切换到Authorization选项,选中Perform authorization,填上Database, user name, password,就可以连接成功了。

mongodb不像mysql,验证的用户对所有数据库都有读写的能力,不同的库需要配置相关的用户信息才能对该库进行读写。比如有个myblog的数据库,需要对其有读写的能力,新建一个具有读写能力的用户。

命令如下:

mongo   // 连接数据库
use admin  // 切换到admin数据库
db.auth('admin','admin')  // auth验证登录
use myblog      // 切换到myblog数据库
db.createUser(   // 创建普通用户
 {
 user: "keen",  // 账号
 pwd: "123",  // 密码
 roles: [ { role: "readWrite", db: "myblog" } ] // 角色:读写,数据库:myblog
 }
)
db.auth('keen', '123')   // 使用新建用户keen验证登录

到此整个mongodb配置结束了,关于mongodb的身份认证,以及权限控制,可以看看这篇文章,写的很详细。

时间: 2017-08-08

centos yum 安装 mongodb 以及php扩展

一,安装mongodb,php扩展 [root@localhost ~]# yum install php-pecl-mongo mongodb mongodb-devel mongodb-server php扩展,mongodb服务端,mongodb客户就装好了. 二,配置/etc/mongodb.conf [root@localhost www]# cat /etc/mongodb.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}

Centos 7下Mongodb开机无法自启动的解决方法

前言 首先下载的mongodb有bug,需要自己手动fix,这种只是对特定版本有问题,并非所有版本都有这个问题, SeLinux 另外,一定要把selinux设置为disabled或者permissive 问题描述 sudo systemctl status mongod.service 看到服务起不来,于是打开log文件: cat /var/log/mongodb/mongod.log 有如下问题,是因为无法创建pid文件 ***** SERVER RESTARTED ***** ERROR:

阿里云CentOS7安装Mongodb教程

一.概述 近日要在新的CentOS系统上安装MongoDB,某度结果后直接从Mongo官网直接获得3.2版本的下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.切换国内的安装源后,使用yum的方式安装后发现,安装的MongoDB版本居然是2.8的.一番研究后,贴出以下操作方式,提供给后人操作. 二.操作过程 1.首先更新一下包吧,多更无害. sudo yum -y update 2.在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件 sud

CentOS 6.5系统中使用yum安装MongoDB 2.6 教程

下面我们在CentOS 6.5 x64系统上安装最新的MongoDB 2.6.0版. MongoDB v2.4.x版的软件仓库有两个包: 1)mongo-10gen-server 此包里面有最新版的mongod和mongos守护程序以及相关的配置和初始化脚本. 2)mongo-10gen 此包里面有最新版的所有MongoDB工具.这些工具方便你管理MongoDB系统. 但在MongoDB v2.6.0版的软件仓库一共有五个包: 1)mongodb-org 此包是元数据包,它可以实现自动安装下面的

CentOS系统下MongoDB安装及配置教程

一.准备工作: 运行yum命令查看MongoDB的包信息 复制代码 代码如下: [root@vm ~]# yum info mongo-10gen (提示没有相关匹配的信息,) 说明你的centos系统中的yum源不包含MongoDB的相关资源,所以要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件,以下分别是针对centos 64位和32位不同的系统的MongoDB yum 源配置内容: 我们这里就将该

CentOS 7下MongoDB的安装配置详解

一.Mongodb安装 以下安装步骤以dp用户执行 1. 下载mongodb 3.4.2的安装包: "mongodb-linux-x86_64-rhel70-3.4.2.tgz",放在-/software下. 2. 解压该文件包: $ cd -/software $ tar -xf mongodb-linux-x86_64-rhel70-3.4.2.tgz 得到文件夹 mongodb-linux-x86_64-rhel70-3.4.2/,其中的bin文件夹包含Mongodb的所有可执行

centos6.5中安装mongodb简明总结

step1: 下载https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.11.tgz 最新版,这个是linux64位下载地址,你也可以到首页自己选择 step2: 解压tar vxf mongodb-linux-x86_64-2.4.11.tgz,解压完之后,进入到根(/)目录,创建data/db文件夹 step3: 进入解压完之后的mongodb文件夹,进入bin目录,运行./mongod,发现出现错误信息:Please make

CentOS上安装Node.js和mongodb笔记

之前听说过Node.js,只是知道它可以应用于服务器端,但是对很多具体的东西并不了解.今天在QCon上听了袁锋的分享<Node.js脱离了浏览器的Javascript>之后,顿时有了想立刻试一下的冲动. Node.js的安装步骤算是比较简单,没有太多的弯路,主要参考文档: Building and Installing Node.js 1. 安装Python 根据参考文档说明,从源代码编译安装Node.js需要python2.6或者以上,而通过yum install python.x86_64

如何在Linux上安装Node.js

Node.js 是建立在谷歌的 V8 JavaScript 引擎服务器端的软件平台上.在构建高性能的服务器端应用程序上,Node.js 在 JavaScript 中已是首选方案.是什么让使用 Node.js 库和应用程序的庞大生态系统来开发服务器后台变得如此流行.Node.js 自带一个被称为 npm 的命令行工具可以让你轻松地安装它,进行版本控制并使用 npm 的在线仓库来管理 Node.js 库和应用程序的依赖关系. 在本教程中,我将介绍 如何在主流 Linux 发行版上安装 Node.js

在Ubuntu系统上安装Node.JS的教程

Node.js 在实时的 Web应用上采用了基于 WebSocket 的推送技术.这意味着什么样的革命性?Well,在经过了20多年的基于无状态的请求-返机制的无状态交互之后,我们终于有了实时的,双向连接的web应用,客户端和服务器端都可以发起通信,能够自由地交换数据.与此形成鲜明对比的是传统的 web响应模式,客户端总是主动发起通信而服务端被动返回.此外,这些都是基于运行在标准80端口上的开放Web组件(HTML.CSS和JS). 可能有人会说,我们已经使用 Flash 和 Java Appl

[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客

这里选用的操作系统是社区版Debian,Debian和Ubuntu的操作指令是一脉相承的,再加上之前玩过一段时间的Raspberry PI,个人比较熟悉,以下的安装过程其实同样适用于树霉派(安装node.js和NPM那一部分). 1) 注册并选型 在aws上注册并绑定信号卡后即可使用亚马逊的一年免费EC2主机,不过配置通常比较低,通常为0.612Mb(linux)和1G(Win)内存. http://aws.amazon.com/ 这里选用的是社区版Debian的版本是 Debian-squee

在Windows上安装Node.js模块的方法

不过有消息称Microsoft已经联系Node.js官方,相信很快会有改善. 那么在不安装Cygwin的情况下,是否可以在Windows上搭建Node.js环境进行试验开发哪?我以Node.js + express做了个简单测试,基本可行. 步骤如下: 1. 下载Node.js官方非稳定版Windows可执行程序: http://nodejs.org/#download 我在试验中使用了0.5.7版本:http://nodejs.org/dist/v0.5.7/node.exe 2. 创建c:\

linux环境安装node.js开发环境搭建图文教程

Node.js现在有多火,有多重要,就不多说了,这里介绍一下他的开发环境安装,通常情况下,我们都是在window环境进行开发,或者是在mac环境下进行开发,但是我们的项目实际运行的环境一般都是在linux上的,所以我们让我们的开发环境和生产环境能够尽量统一,且能够方便我们开发,一般我们将必要环境安装在服务器上,然后在window上通过xshell,SecureCRTPortable等一些工具连接上去,在window上使用方便IDE软件开发,然后通过ftp将文件同步上去,所以这里就讲一些如何在服务

卸载安装Node.js与npm过程详解

下面记录一下在本地 Windwos 环境用 vagrant 搭建的虚拟机(Homestaead)和生产环境阿里云 CentOS 系统安装 Node.js 的步骤,以及 npm 安装依赖的不同之处. 使用源码编译的方式安装 node.js.首先将机子上的 Node.js 卸载,我直接贴上 Stack Overflow 上提供的步骤: 1.卸载 npm 和 Node.js 先卸载 npm,命令是:sudo npm uninstall npm -g,然后卸载 Node.js. Running whic

详解使用nvm安装node.js

我最近在研究node.js的路上,那么今天也算个学习笔记吧! 一.Windows系统 1.node.js下载应用程序,压缩,安装 http://www.jb51.net/softs/504128.html 2.nvm的安装路径下,找到settings.txt打开,在后面加上(添加淘宝镜像node) node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/ 3.

node.js连接mongoDB数据库 快速搭建自己的web服务

一.写在前面 人人都想成为全栈码农,作为一个web前端开发人员,通往全栈的简洁之路,貌似就是node.js了.前段时间学习了node.js,来谈谈新手如何快速的搭建自己的web服务,开启全栈之路. 二.安装node.js 接触过后端开发的人都知道,首先要安装服务.作为新手,肯定是选择最简单的可视化安装了(傻瓜式下一步,其它的方式等熟悉相关操作后自然就会了的),通过官网http://nodejs.org/dist/v0.6.1/node-v0.6.1.msi 下载电脑适配的安装包(这个是windo

在linux中使用包管理器安装node.js

网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在Ubuntu中,使用如下命令: 复制代码 代码如下: curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 如果需要使用npm安装本地组件,还需要执行如下命令: 复制代码 代码如下: