1. 程式人生 > >Mac安裝配置Mongodb

Mac安裝配置Mongodb

最近在在學習nodejs,相比mysql,mongodb與nodejs搭配更合適,儲存資料格式也比較接近JS物件。關於mysql和mongodb兩種型別資料庫的差別與對比,下篇文章再寫。
下面來看一下如何在mac上安裝mongodb。

Homebrew

你可以選擇選擇下載mongodb原始碼編譯安裝,當然在mac上更方便快捷的方式是用homebrew安裝。homebrew是mac上的一個包管理器,相當於ubantu的apt—get。第一次接觸homebrew的同學可以戳官網

安裝過程

首先在終端輸入如下命令更新Homebrew的package資料庫

brew update

更新完畢後,接著輸入如下命令進行安裝mongodb

brew install mongodb

安裝完成終端大概會出現如下命令

==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mongodb-3.4
######################################################################## 100.0%
==> Pouring mongodb-3.4.6.mavericks.bottle.2.tar.gz
==> Caveats
To have launchd start mongodb at login
: ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents Then to load mongodb now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist Or, if you don’t want/need launchctl, you can just run: mongod —config /usr/local/etc/mongod.conf ==> Summary /usr/local/Cellar/mongodb/3.4.6: 17 files, 331M

好了現在安裝完成。

啟動mongbd

輸入命令

mongod --config /usr/local/etc/mongod.conf

然後在終端輸入命令

mongo

出現如下命令則表示啟動成功

MongoDB shell version v3.4.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.6
Server has startup warnings: 
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] 
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] 
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] 
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> 

終端輸入exit可以退出資料庫終端操作。

關閉mongodb

1. 使用資料庫命令關閉

資料庫操作的終端 依次輸入如下命令:

    > use admin
    > db.shutdownServer()

注意這裡命令區分大小寫。

2. 使用kill命令關閉

新建終端視窗 輸入如下命令

ps -ef | grep mongo

這個命令檢視關於mongo的所有程序的所有資訊。如下是我輸入命令顯示的資訊。其中第二列資料是pid。最後一列顯示了當時啟動該程序輸入的命令。

 501  3734  3693   0  5:28下午 ttys000    0:00.00 grep mongo
 501  3707  3601   0  5:06下午 ttys001    0:06.13 mongod --auth --port 27017 --dbpath /data/db

再使用kill+pid命令關閉mongo執行的程序。

kill 3707 

這種方式一般用於強制關閉。不建議使用。

問題

1. 啟動時WARNING問題

我們在一開始使用mongod --config /usr/local/etc/mongod.conf 啟動mongodb時,出現了一大堆提示資訊,包括了一些warning,如下:

2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-08-02T16:21:45.890+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

這些warning並不影響使用資料庫,但總出現warning看著也很不爽,那這些命令到底是什麼呢?怎麼解決呢?

其實,這是新版mongodb要求我們建立一個安全的資料庫。對資料庫操作許可權設定,只能允許授權使用者操作制定資料庫。在stackoverflow上找到了解決方案。

  1. 如果剛剛啟動了mongodb請關閉。方法參考上面。
  2. 輸入如下命令啟動mongodb。這裡 /data/db是mongodb存放資料的目錄。homebrew安裝一般會自動建立。

    mongod --port 27017 --dbpath /data/db
  3. 新建一個終端視窗連線mongodb

    mongo --port 27017
  4. 輸入如下資料庫命令建立使用者。

    use admin
    db.createUser(
      {
        user: "yourname",
        pwd: "yourpwd",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
  5. 關閉資料庫並用如下命令重啟。

    mongod --auth --port 27017 --dbpath /data/db
  6. 連線資料庫。

    mongo --port 27017 -u "yourname" -p "yourpwd" --authenticationDatabase "admin"
  7. 好了現在就會發現WARNING不見了。

    MongoDB shell version v3.4.6
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.6
  8. 在使用時,如果要指定某個使用者對某個資料庫的操作,可以建立使用者指定許可權。 比如 Tester使用者對test資料對操作為可讀可寫。

    use test
    db.createUser(
      {
        user: "Tester",
        pwd: "123",
        roles: [ { role: "readWrite", db: "test" },
                 { role: "read", db: "reporting" } ]
      }
    )

    連線資料庫的命令就變成了

    mongo --port 27017 -u "Tester" -p "123" --authenticationDatabase "test"
    

    當然如果nodejs使用mongoose操作mongodb時,連線的命令也需要填充一些引數

    mongoose.createConnection('localhost', 'test', 27017, {user: 'Tester', pass: '123'});

2. 啟動或關閉資料庫時Exception問題

[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100

這個問題是因為 只有root對 /data/db可寫,但是你在用自己的賬戶操作,所以可以用一下命令授權解決問題。

sudo chmod -R go+w /data/db

或者

sudo chown -R $USER /data/db

好了文章就寫到這裡。再遇見什麼坑和問題會後續補充。

相關推薦

Mac安裝配置Mongodb

最近在在學習nodejs,相比mysql,mongodb與nodejs搭配更合適,儲存資料格式也比較接近JS物件。關於mysql和mongodb兩種型別資料庫的差別與對比,下篇文章再寫。 下面來看一下如何在mac上安裝mongodb。 Homeb

Mac安裝配置MongoDB

1.去官方網站下載最新版的Mac版的MongoDB:mongodb-osx-x86_64-2.2.0.tgz。MongoDB的官方網站:www.mongodb.org。2.解壓mongodb的壓縮包到某個安裝目錄,例如:/Users/circle/Develope-Tools

Mac 安裝配置Mysql

nes text 裝配 tex alias markdown 什麽 又一 shu Mac下安裝配置Mysql By 白熊花田(http://blog.csdn.net/whiterbear) 轉載需註明出處,謝謝。 下載安裝 去官網下載Co

centos下安裝配置mongodb

創建 app con server col pro port PE 裝配 1:安裝mkdir -p /app/mongodb tar zxvf mongodb-linux-x86_64-rhel62-3.4.6.tgz vi .bash_profile PATH=$PAT

Win10 安裝配置 MongoDB 4.0 踩坑記

repl 其他 文件夾 power chm font 無人值守安裝 path .org redis 官方沒有 Windows 版的,微軟維護的已經好久沒更新了,所以就在想著換成 MongoDB。 於是一趟被我復雜化的踩坑之旅就開始了,同時也記錄一下,避免有人遇見跟我一樣的

Centos 7.5安裝配置MongoDB 4.0.4

解壓 分布式 pwd tgz remote des work nan run MongoDB 是一個基於分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介於關系數據庫和非關系數據庫之間的產品,是非關

Graphviz Mac 安裝配置

Graphviz Mac 安裝配置 @[Graphviz |Mac |Tolls] Graphviz是一個由AT&T實驗室啟動的開源的工具包,用於繪製DOT語言描述的圖形,它也提供了其他軟體使用的軟體庫。本文主要描述基於Mac安裝配置Graphviz的步驟。 [1]登

mac安裝配置neo4j

2.4. Mac OS installation This section describes how to install Neo4j on Mac OS. 2.4.1. Unix console application Download the lates

Centos6.5安裝配置MongoDB資料庫

概要:安裝MongoDB資料庫分為以下幾步 配置MongoDB官方源 安裝MongoDB資料庫並啟動 簡單使用MongoDB資料庫 一:配置MongoDB官方源 新建一個檔案 /etc/yum.repos.d/mongodb-org-3.4.

Mac安裝配置mysql

一,www.mysql.com官網下載mysql community dmg安裝包,安裝mysql 二,安裝後,檢視系統偏好設定,最下方會顯示mysql圖示,點選此圖示檢視mysql已開啟 三,新增mysql到系統環境變數(因為蘋果在OS X 10.11中

Linux系統安裝配置MongoDB資料庫

安裝教程 1、關閉SELINUX vi /etc/selinux/config 對配置檔案進行修改,然後按ESC鍵,:wq儲存退出 #SELINUX=enforcing #SELINUXTYPE=targeted SELINU

linux下安裝配置mongodb

一:下載 下載地址: 二:安裝 2.1 解壓 [[email protected] download]# ls -ltr total 71552 -rw-r--r-- 1 root root 32979820 Jun 15 10:01 mysql-5.6.2

新手學Linux(四)----Linux下安裝配置MongoDB資料庫

    最近在學習研究linux,今天就教教大家怎麼在linux上安裝配置MongoDB資料庫 一、安裝步驟     1、下載及解壓     下載完成後用WinSCP複製到/us

mac 安裝配置 phantomjs

1.下載 phantomjs http://phantomjs.org/download.html 2.下載後將檔案解壓後放到自己定義的目錄下 3.終端輸入 vim .bash_profile 4.新增語句( i 插入, esc 退出,:wq 儲存關閉) expo

首次使用Mac安裝配置Java開發環境筆記

Mac下配置jdk,maven:第一次配置環境變數,可以使用“touch .bash_profile” 建立一個.bash_profile的隱藏配置檔案(如果你是為編輯已存在的配置檔案,則使用"open -e .bash_profile"命令)通過 vim .bash_pro

mac 安裝redis, mongodb, mysql

brew install redis brew install mongodb brew install mysql redis redis-server # 開啟服務 redis-cli #連線 mongodb brew services start mongo

Windows下安裝配置Mongodb

1 下載 官網:https://www.mongodb.com/ MongoDB Windows系統各個64位版本下載地址:http://dl.mongodb.org/dl/win32/x86_64 2 安裝 3 配置 安裝完成後,就需要

xampp for mac安裝配置

http://www.apachefriends.org/zh_cn/xampp-macosx.html /Applications/XAMPP/xamppfiles/bin XAMPP 命令庫。 例如 /Applications/XAMPP/xamppfiles/bi

Java--Mac安裝配置Tomcat

在這裡作為新手安裝Tomcat,肯定會問:安裝tomcat和jdk必須統一版本麼?jdk1.7的必須安裝tomcat7.0版本麼? 其實這個答案只能說不一定,但是儘量保持版本一致;因為java向下相容,也就是說,JDK8配置tomcat7也沒問題,但是JDK,eclipse

mac安裝配置MySQL,親自試過的。有效

步驟: 1、官網下載mysql安裝包mysql-5.7.13-osx10.11-x86_64.bmg安裝 2、安裝完成後終端輸入: mysql --version ----顯示版本號說明正常,若顯示command not found,在終端輸入如下,”/usr/loca