天天看點

Mongodb資料庫安裝及使用

介紹:

    mongodb是一個基于分布式檔案存儲的資料庫。高性能,開源,無模式的文檔型資料庫,為web應用提供可擴充的高性能資料存儲,是目前nosql資料庫中比較熱門的一種,由c++語言編寫。

    mongodb是一個介于關系資料庫和非關系資料庫之間的産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似json的bson格式,是以可以存儲比較複雜的資料類型。mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

預設端口:27017

特點:

  高性能、易部署、易使用,存儲資料非常友善。主要功能特性有:

面向集合存儲,易存儲對象類型的資料。

模式自由。

支援動态查詢。

支援完全索引,包含内部對象。

支援查詢。

支援複制和故障恢複。

使用高效的二進制資料存儲,包括大型對象(如視訊等)。

自動處理碎片,以支援雲計算層次的擴充性

支援python,php,ruby,java,c,c#,javascript,perl及c++語言的驅動程式,社群中也提供了對erlang及.net等平台的驅動程式。

檔案存儲格式為bson(一種json的擴充)。

可通過網絡通路。

功能:

面向集合的存儲:适合存儲對象及json形式的資料。

動态查詢:mongo支援豐富的查詢表達式。查詢指令使用json形式的标記,可輕易查詢文檔中内嵌的對象及數組。

完整的索引支援:包括文檔内嵌對象及數組。mongo的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃。

查詢監視:mongo包含一個監視工具用于分析資料庫操作的性能。

複制及自動故障轉移:mongo資料庫支援伺服器之間的資料複制,支援主-從模式及伺服器之間的互相複制。複制的主要目标是提供備援及自動故障轉移。

高效的傳統存儲方式:支援二進制資料及大型對象(如照片或圖檔)

自動分片以支援雲級别的伸縮性:自動分片功能支援水準的資料庫叢集,可動态添加額外的機器。

1.安裝mongodb

下載下傳:http://www.mongodb.org/downloads

1

2

3

<code>mongodb-linux-x86_64-2.4.5.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>zxvf mongodb-linux-x86_64-2.4.5</code>

<code>mv</code> <code>mongodb-linux-x86_64-2.4.5</code><code>/usr/local/mongodb</code>

2.啟動mongodb

4

5

6

<code>mkdir</code> <code>/data/db</code>

<code>mkdir</code> <code>/data/log</code>

<code>cd</code> <code>/usr/local/mongodb/bin</code>

<code> </code><code>.</code><code>/mongod</code> <code>--dbpath=</code><code>/data/db/</code> <code>--logpath=</code><code>/data/log/test</code><code>.log --fork </code><code>#啟動,dbpath指定資料庫位置,logpath指定日志位置</code>

<code>netstat</code> <code>-tuplna | </code><code>grep</code> <code>27017  </code><code>#說明mongodb已經啟動</code>

<code>tcp    0    0 0.0.0.0:27017  0.0.0.0:*   listen    1695/.</code><code>/mongod</code>

3.添加php擴充

下載下傳mongodb用戶端支援包:http://pecl.php.net/package/mongo-1.4.2.tgz

7

<code>tar</code> <code>zxvf mongo-1.4.2.tgz</code>

<code>cd</code> <code>mongo-1.4.2</code>

<code>/usr/local/php/bin/phpize</code>

<code>.</code><code>/configure--with-php-config</code><code>=</code><code>/usr/local/php/bin/php-config</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>vi</code> <code>/etc/php</code><code>.ini</code>

<code>extension=mongo.so </code><code>#添加mongo子產品</code>

phpinfo()可以看到mongo擴充!

4.測試php連接配接mongodb

8

9

10

11

12

13

<code>.</code><code>/mongo</code> <code>#登陸mongodb資料庫</code>

<code>killall -9 mongod </code><code>#關閉資料庫</code>

<code>vi</code> <code>/var/www/html/index</code><code>.php</code>

<code>&lt;?php</code>

<code>$m = newmongo(</code><code>'192.168.0.202:27017'</code><code>);</code>

<code>$a =$m-&gt;abc; </code><code>#定義連接配接庫</code>

<code>if</code><code>($a){</code>

<code> </code><code>echo</code> <code>"success"</code><code>;</code>

<code>}</code>

<code>else</code><code>{</code>

<code> </code><code>echo</code> <code>"wrong"</code><code>;</code>

<code>?&gt;</code>

5.mongodb資料操作指令

1、help檢視指令提示

2、切換/建立資料庫

use dbname;

當建立一個集合(table)的時候會自動建立目前資料庫

3、查詢所有資料庫

show dbs;

4、删除目前使用資料庫

db.dropdatabase();

5、從指定主機上克隆資料庫

db.clonedatabase(“127.0.0.1”); #将指定機器上的資料庫的資料克隆到目前資料庫

6、從指定的機器上複制指定資料庫資料到某個資料庫

db.copydatabase("mydb", "temp","127.0.0.1"); #将本機的mydb的資料複制到temp資料庫中

7、修複目前資料庫

db.repairdatabase();

8、檢視目前使用的資料庫

db.getname();

db;

db和getname方法是一樣的效果,都可以查詢目前使用的資料庫

9、顯示目前db狀态

db.stats();

10、目前db版本

db.version();

11、檢視目前db的連結機器位址

db.getmongo();

使用者相關

1、添加一個使用者

db.adduser("name");

db.adduser("username", "pwd123", true); #添加使用者、設定密碼、是否隻讀

2、資料庫認證、安全模式

db.auth("username","123123");

3、顯示目前所有使用者

show users;

4、删除使用者

db.removeuser("username");

showcollections : #列出目前資料庫的所有文檔。