mongodb安裝

概述

mongodb是一個nosql數據庫,全部的數據都是以bson格式去存儲在數據庫裏面的,什麼是bson呢,bson是一種比json更強的數據存儲格式,若是你是小白,能夠直接看作jsonlinux

centos下安裝

首先添加MongoDB的軟件源 編輯下面這個文件sql

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

添加shell

[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 makecachemacos

安裝json

sudo yum install mongodb-orgvim

啓動centos

systemctl start mongod緩存

查看運行狀態

systemctl status mongod

鏈接以後會有幾個警告

[root[@bboysoul](https://my.oschina.net/u/2557325) ~]# 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

相關文章
相關標籤/搜索