mongodb安装

概述

mongodb是一个nosql数据库,所有的数据都是以bson格式去存储在数据库里面的,什么是bson呢,bson是一种比json更强的数据存储格式,如果你是小白,可以直接看做json

centos下安装

首先添加MongoDB的软件源 编辑下面这个文件

vim /etc/yum.repos.d/mongodb.repo

添加

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

刷新软件源缓存

yum makecache

安装

sudo yum install mongodb-org

启动

systemctl start mongod

查看运行状态

systemctl status mongod

连接之后会有几个警告

[root@bboysoul ~]# mongo --host localhost
MongoDB shell version v3.6.5
connecting to: mongodb://localhost:27017/
MongoDB server version: 3.6.5
Server has startup warnings:
2018-05-30T17:22:25.377+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.377+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-05-30T17:22:25.377+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-05-30T17:22:25.377+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten]

我们一步一步解决它 第二三个警告是

2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten]
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-05-30T17:22:25.378+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

意思是要禁用linux的大内存页,输入下面命令禁用

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo never > /sys/kernel/mm/transparent_hugepage/defrag

这样做其实重启机器之后大内存页是会自动开启的,如果你想一直禁止使用大内存页那么你要这么做修改rc.local文件

vi /etc/rc.d/rc.local

之后加入

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

注意rc.local要有可执行权限

chmod +x rc.local

之后解决第四项警告

WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.

这个意思是你的系统限制的最大进程数是4096,最大能打开的文件是64000个,所以我们要修改配置文件来消除这个警告,修改下面这个文件

vi /etc/security/limits.conf

加入

mongod soft nofile 64000  
mongod hard nofile 64000  
mongod soft nproc 32000  
mongod hard nproc 32000

之后重启服务,查看还有没有这个警告了

最后解决第一个警告

2018-05-30T23:01:38.417+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-05-30T23:01:38.417+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricte

这个问题的原因就是mongo推荐你使用验证登录数据库,也就是说要设置密码,那么我们就来设置密码使用admin数据库

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> use admin
switched to db admin

加入密码

db.createUser(
  {
    user: "admin", //用户名
    pwd: "woyaoxuehuilinux", //密码
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] //设置权限
  }
)

之后修改systemed中的文件

vi /etc/mongod.conf

加入

security:
   authorization: enabled

之后重启数据库登录就好了

macos 安装

首先下载

wget https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.5.tgz

之后解压

tar -xvf mongodb-osx-ssl-x86_64-3.6.5.tgz

接着移动到一个自己喜欢的目录并且重命名

mv mongodb-osx-x86_64-3.6.5 ~/Applications/mongo

在zshrc或者bashrc中加入环境变量

vim ~/.zshrc

加入

export PATH=$PATH:/Users/bboysoul/Applications/mongo/bin

使环境变量生效

source ~/.zshrc

执行下mongo看看是不是配置成功,接着新建一个目录来存放mongo的数据

mkdir mongodb

启动服务

mongod --dbpath /Users/bboysoul/Applications/mongo/mongodb --bind_ip 0.0.0.0 &

之后连接数据库

mongo --host localhost

创建用户

> use admin
switched to db admin
> db.createUser(
...   {
...     user: "admin", //用户名
...     pwd: "woyaoxuehuilinux", //密码
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] //设置权限
...   }
... )
2018-05-30T23:31:55.172+0800 I STORAGE  [conn1] createCollection: admin.system.users with generated UUID: ee4acb87-b294-4359-9397-fe8b5b2581b7
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

找到mongo的pid kill之后再次打开数据库

mongod --dbpath /Users/bboysoul/Applications/mongo/mongodb --bind_ip 0.0.0.0 --auth &

注意这次是家里--auth的

欢迎关注Bboysoul的博客www.bboysoul.com Have Fun

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏散尽浮华

基于MongodbDB的用户认证-运维笔记

MongoDB默认是不认证的,默认没有账号,只要能连接上服务就可以对数据库进行各种操作,MongoDB认为安全最好的方法就是在一个可信的环境中运行它,保证之后可...

17330
来自专栏乐沙弥的世界

MHA 日常管理

    MHA是众多使用MySQL数据库企业高可用的不二选择,它简单易用,功能强大,实现了基于MySQL replication架构的自动主从故障转移。本文主要...

6900
来自专栏Hongten

google map 初体验

8720
来自专栏Web行业观察

MongoDB入门与安装 [纯技术]

mongodb是一个nosql数据库,所有的数据都是以bson格式去存储在数据库里面的,什么是bson呢,bson是一种比json更强的数据存储格式,如果你是小...

9520
来自专栏点滴积累

OpenStack(企业私有云)万里长征第五步——虚拟机Migrate&Resize

一、前言 上一篇文章讲了OpenStack的部署和简单操作,今天介绍一下如何实现虚拟机的Migrate以及Resize。Migrate操作和Resize操作基本...

41950
来自专栏大魏分享(微信公众号:david-share)

Oracle11g RAC双NFS仲裁容错方案

说明: 整理文档时发现自己在2010年写的一个RAC容灾方案,觉得有一些用,分享出来。当时为了验证此方案,做了很多PoC。方案相对比较复杂,但是也提供了一种思路...

57190
来自专栏乐沙弥的世界

MHA 配置文件样本描述

        与绝大多数Linux应用程序类似,MHA的正确使用依赖于合理的配置文件。MHA的配置文件与mysql的my.cnf文件配置相似,采取的是分模块,...

12310
来自专栏分布式系统进阶

Kafka是如何处理客户端发送的数据的?

// respond immediately if // 1) fetch request does not w...

17710
来自专栏不想当开发的产品不是好测试

Establishing SSL connection without server's identity verification is not recommended. According to

Spring boot 启动提示: Establishing SSL connection without server's identity verifica...

259100
来自专栏北京马哥教育

GlusterFS分布式文件系统使用简介

术语简介 GlusterFS是一个开源的分布式文件系统。更多特性介绍附录的参考文档。 Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出...

74260

扫码关注云+社区

领取腾讯云代金券