2013年9月21日 星期六

[ MongoDB 文章收集 ] 在 Ubuntu 上安裝 MangoDB

Preface:
在 Ubuntu 上安裝 MongoDB 很直覺, 透過 "sudo apt-get install mongodb" 即可快速完成.

安裝 Mongodb:
在 Ubuntu 使用 apt-get 安裝 MongoDB:
$ sudo apt-get install mongodb
...
$ ps -aux | grep mongod # 安裝完畢後, mongod daemon 會被執行
nlg 2022 0.0 0.0 4472 776 pts/1 S+ 13:03 0:00 grep --color=auto mongod
mongodb 32266 0.2 0.2 149608 38444 ? Ssl 11:42 0:13 /usr/bin/mongod --config /etc/mongodb.conf

安裝完畢後, 如果希望遠端可以連上 DB, 請將 /etc/mongodb.conf 的 "bind_ip = 127.0.0.1" 一行註解, 再重新執行 mongod:
$ sudo vi /etc/mongodb.conf # 註解 "bind_ip = 127.0.0.1" 
$ sudo /etc/init.d/mongodb restart # 重新啟動 mongod
$ ps -aux | grep mongod # 確認 mongod 有起來

為 MongoDB 添加 Admin 帳戶:
要為 MongoDB 添加一個 Administrator 的帳戶可以參考下面 instructions:
$ mongo # 進入 mongoDB shell 
MongoDB shell version: 1.8.2
Sun Sep 22 13:13:06 *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
connecting to: test

> db = db.getSiblingDB('admin') # 切換到 db='admin'
admin
> db.addUser( { user: "admin", pwd: "pwd", roles: [ "userAdminAnyDatabase" ] } ) # 建立 administrator="admin"; password="pwd"

預設如果你沒有在 "admin" database 添加使用者, 則在 localhost 連上的 connection 都具備 administrator 的權限, 如果你不希望如此, 則可以使用下面命令停止上述的 behavior:
# mongod --setParameter enableLocalhostAuthBypass=0

Note
For versions of MongoDB 2.2 prior to 2.2.4, if mongos is running with keyFile, then all users connecting over the localhost interface must authenticate, even if there aren’t any users in the admin database. Connections on localhost are not correctly granted full access on sharded systems that run those versions.
MongoDB 2.2.4 resolves this issue.


Supplement:
MongoDB Manual> Create a User Administrator
MongoDB Manual> Install MongoDB on Linux
MangoDB Manual> db.addUser()
Use db.addUser() to add privilege documents to the system.users collection in a database, which creates database credentials in MongoDB.

This message was edited 18 times. Last update was at 22/09/2013 13:24:06

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...