顯示具有 NoSQL 標籤的文章。 顯示所有文章
顯示具有 NoSQL 標籤的文章。 顯示所有文章

2011-06-16

Mongodb 限制 localhost (本機) 連線

Mongodb 預設會接受安裝的電腦上的所有的網卡的 IP 的連線要求,也就是說,如果 MongoDB  沒有啟用認證功能的話,那麼,就任何人都可以連上來要資料,所以,如果和阿舍一樣,是拿 MongoDB 來給網站用的,而且,是和網站伺服器放在同一台的話,那麼為了安全起見,最好還是設定一下,限制 MongoDB  只能被本機電腦的程式存取,這樣可以減少一些問題哩 !

要讓 MongoDb  只能給本機連線的話,要在 MongoDB 的設定檔裡加入下面這一行,如果你是把 MongoDB 裝在 Linux 上的話,MongoDb 的設定檔是放在 \etc\mongodb.conf,直接修改就可以了,改好後存檔,然後,重新啟動 MongoDb ,這樣就會生效了。

bind_ip = 127.0.0.1

如果是在 Windows 上安裝 MongoDb 的話,那麼,應該是會找不到 MongoDb 的設定檔的,所以,要自己新增一個文字檔來當設定檔用,然後,加入上面那一行,存檔後,再用下面的指令來啟動 MongoDb 就可以了 ( 阿舍設定命名為 mongodb.ini 並放在 c:\mongodb\bin 裡為例 )。

c:\mongodb\bin\mongodb –f mongodb.ini

2011-06-14

如何 Shutdown (停止) Mongodb Server ?

阿舍剛開始用 MongoDB 時,一直都有一個疑惑,就是,MongoDb 的 Server 要怎麼 Shutdown 哩 ! 阿舍之前都是直接點 MongoDb Server 視窗右上角的 X 來關閉,但是,每次這樣子關,阿舍還是覺得有點不安哩 ! 於是就去查了一下 MongoDb 的官方文件囉 !

原來,只要在 MongoDb Server 視窗按下「ctrl-C」就可以把 MongoDb Server 給 Shtdown 哩 ! 和直接按 X 不一樣的是,按「ctrl-C」會看到 MongoDb 做完 Shutdown 程才會關閉的哩 ! 另外,也可以經由 Mongodb Shell 執行下面的指令來 Shutdown 的,不過,看來按「ctrl-C」會比較方便的。

db.shutdowServer()

2011-06-13

MongoDB 如何啟用使用者認證 (Authentication) 功能 ?

MongoDB 預設並沒有啟用認證功能 (Authentication),而且,也沒有預設的超級使用帳號,所以,在預設的情況下,是任何人都可以連線到 MongoDb Server 來取資料的,如果你和阿舍一樣,想要有登入帳號才可以存取的話,第一步,要先建立一個最高權限的管理者帳號,請用在 MongoDB Shell 執行下面這二行的指令。 ( 請把“帳號名稱" 和“密碼"換成你想要設定的帳號名稱和密碼,雙引號是要有的哩 ! 而且,大小寫是有差的)

use admin
db.addUser(“帳號名稱",“密碼")

完成之後,第二步,請把 MongoDB 給 Shutdown 後,再用下面的指令來啟動  MongoDB,如果沒有加上 "—auth” 這個參數,那麼就算是有建立 admin 資料庫的使用者也是沒有用的哩 !

mongod --auth

MongoDB 啟動完成之後,再用  MongoDB Shell 連上之後,就要下面的指令才能夠對 admin 這個資料庫做查詢和修改。

use admin
db.auth(“帳號名稱",“密碼")

至於個別的資料庫,做法和 admin 這個資料庫是一樣的,以阿舍的 arthurtoday 這個資料庫要加入 ayubiz 這個使用者帳號為例,操作指令如下:

use arthurtoday
db.addUser(“ayubiz",“12345678”)

如果,只想讓某個帳號只有讀取的權限,那就用下面的這個方式來新增帳號。

db.addUser(“guest",“123”,true)

這大概就是 MongoDb 的權限的全部了,MongoDB 目前只有提供簡單的權限控管,只有可以讀寫和唯讀二個帳號,阿舍是覺得,拿來當做 Web Application 的後端就已經夠用了哩 !

2011-06-08

Mongodb 的 GridFS 是什麼 ?

當你把大型的物件或檔案放到資料庫去之後,當你想要讀取檔案裡的某一段資料,那麼,你就得把整個物件或檔案都給讀出來,然後,才能讀到想要的那一小段資料,實在是很沒有效率又費時,因此,MongoDB 為解決這樣的問題,於是就推出 GridFS 規範 (GridFS specification) 來處理這個問題。

GridFS 規範 ? GridFS 是一種規範嗎 ? 那誰來遵循呢 ? 是的,GridFS specification 是由 MongoDB 所定義的一種規範,主要是要給寫 MongoDB 驅動程式 (Driver) 遵循,也就是說,MongoDB 的核心程式並沒有支援 GridFS,而是由所使用的驅動程式來支援的,所以,如果你用的驅動程式 不支援 GridFS 的功能,那麼你的 MongoDB 就不會有 GridFS 的功能哩 !

GridFS 的做法就是把檔案分成檔案資訊和區塊(Chunks) 二個部分,檔案資訊用來儲存檔案名稱和容量等資訊,而區塊則是將檔案做分割後儲存,透過分割儲存的方式才能夠達到快速讀取檔案中的任一段資料的功能,至於如何使用GridFS的功能,則是要看所使用的驅動程式而定,目前 GridFS 有支援 PHP、Python、Java 和 Ruby 等四種語言的驅動程式。

2011-02-26

Windows 如何安裝 MongoDB ?

雖然阿舍之前玩的 Domino/Notes 也算是一種 NoSQL 資料庫系統,不過,阿舍最近想玩玩別的 NoSQL 資料庫,於是就是去找了一下,研究了幾個系統,最後就剩下 MongoDB CouchDB 這二個來選,然後,再經過一番比較後,阿舍決定選擇 MongoDB 來用,原因是覺得 MongoDB 的功能比較多,而且,文件比較齊全。

 不過,阿舍一開始有點誤會 MongoDB 了,一直以為它是 Embeded Database,所以,就有點捉不到方向,後來阿舍才明白,其實,這個 MongoDB 是一套完整的資料庫系統,需要有 Server 端的,是要先啟動伺服器才可以連線的啊 ! 不是像 SQLite 那樣的哩!

 MongoDB 在 Windows 的安裝方式很簡單,只要到這裡點選 Windows 版本的程式來下載,然後,把它解壓縮之後,把解壓縮出來的資料夾更名成 mongodb,接著,再把這個資料夾移到 c 槽的根目錄下,完整路變成 c:\mongodb 後,就算完成一半的安裝工作了。

再來,是要幫 MongoDB 設定放資料庫的地方,MongoDB 預設會去找 c:\data\db 這個資料夾,所以,請在 C 槽建立這個資料夾,然後,就算完成了哩 ! 最後,就可以啟動 MongoDB,請到剛剛建立的 c:\mongodb\bin 資料夾裡,找到 mongod.exe 這個檔案,把它點二下,這樣就會啟動 MongoDB 的伺服器了,這個時候,可以再執行 mongo.exe 這支程式來連到 MongoDB 的伺服器進行操作了 !

2010-06-29

NoSQL 是什麼 ?

使用 SQL 的關聯式資料庫已經盛行有近二十年了吧,早期,還有一些軟體工程師認為,不是使用 SQL 關聯式資料庫儲存資料的系統都不是 "正規" 的軟體架構,但是,誰知,風水輪流轉,三十年河東,三十年河西啊! 在網路應用系統與物件導向發展的過程中,慢慢的發現,以 SQL 為基礎的關聯式資料庫造成物件和資料分離的情形,然後,在網路應用程式的規模日漸龐大後,關聯式資料庫在分散式架構的資料儲存和讀取,也有些的不方便.所以,就紛紛的,有人開始研究其他的資料庫模式,以適應新的需求,而這些不是用 SQL 操作的資料庫都泛稱為 NoSQL 資料庫。

在這其中,最具代表性的公司,就是 Google 和 Facebook 這兩家,為了處理它們的天量資料量和使用量,他們都分別使用自己所開發的 NoSQL 資料庫來儲存資料,拾棄關聯式資料庫,結果,據說效果都有比使用 MySQL 來儲存的好。

早期的 NoSQL 資料庫以 Document Stroe 和 Key Value 的架構為主,不過,目前的 NoSQL 已經發展的非常多元了,有各式各種為配合不同的應用需要的資料庫,有興趣瞭解有那些 NoSQL 資料庫的話,可以到這裡來看看,阿舍熟悉的 Lotus Domino/Notes 算是滿早就存在的 NoSQL 資料庫哩 !!

NoSQL 資料庫在近來 Big Data 需求的快速增加下,已經越來越受到重視,因此,開始有越來越多人嘗試使用 NoSQL 資料庫來儲存資料,不過,依阿舍自己的經驗來說,發現,並不是所有的軟體和運行環境都適合採用 NoSQL 資料庫的,所以,開發的軟體是否適合採用 NoSQL 資料庫來儲存資料,是需要依實務的使用情況來決定的,而不是說,用 NoSQL  就會比較好哩 !

延伸閱讀
Windows 安裝 MongoDB
Ubuntu 安裝 MongoDB 資料庫