mongodb windows下以及linux下的配置__linux

來源:互聯網
上載者:User

一、WINDOWS環境

1、下載mogodb

MongoDB的官網是:http://www.mongodb.org/

MongoDB最新版本下載在官網的DownLoad菜單下:http://www.mongodb.org/downloads
官網有時候打不開,下載解壓後將bin放在D:\APMServ5.2.6\Mongo目錄

2、建立檔案夾

在D:\APMServ5.2.6\Mongo建立data檔案夾,建立conf檔案夾,然後再data檔案夾建立db檔案夾跟log檔案夾

在conf中建立mongodb.conf,代碼如下

# Start MongoDB as a daemon on port 8908port = 27017journal = truerest = trueauth = falselogappend = truedbpath = D:/APMServ5.2.6/Mongo/data/dblogpath =  D:/APMServ5.2.6/Mongo/data/log/mongod.log

資料庫放在data/da目錄下,日誌放在data/log目錄

3、執行命令,安裝mongodb資料庫

進入命令列,輸入cd D:\APMServ5.2.6\Mongo\bin(當然在windows環境下要先d:)

mongod -dbpath "D:/APMServ5.2.6/Mongo/data/db"

執行此命令即將mongodb的資料庫檔案建立到D:/APMServ5.2.6/Mongo/data/db 目錄,不出意外的會看到命令最後一行sucess的成功提示

此時資料庫就已啟動,該介面為Mongo的啟動程式,關閉後可直接雙擊bin下的mongod.exe  (注意是d,這個是啟動程式)

啟動程式開啟後,再運行mongo.exe 程式(注意沒有d)

4、將mogodb安裝成服務

命令列輸入

D:\APMServ5.2.6\Mongo\bin\mongod --config D:/APMServ5.2.6/Mongo/conf/mongodb.conf --serviceName MongoDB --install

成功了的話就可以在電腦管理,服務裡面看到MongoDB服務了,然後你就可以net start MongoDB來開啟服務了。

除此以外,你可以進註冊表regedit搜尋MongoDB去看系統啟動的服務,也可以http://localhost:28017來查看mongodb狀況,用http://localhost:27017會提示失敗的,因為有驗證

其實我建議再設定檔先auth=false

裝好後命令列進入bin目錄,然後

show dbs

use admin

db.addUser('admin','123456');

這個時候你再db.auth('admin','123456')之前show dbs是無法成功的。
5、讓php可以訪問mongodb

https://github.com/mongodb/mongo-php-driver/downloads

在上面的地址選擇合適的dll版本

將上面這個檔案複製到D:\APMServ5.2.6\PHP\ext目錄中,要看PHP版本來選擇,不要5.2搞成5.3了,PHP版本可以在PHPINFO裡面看

修改php.ini,添加extension=php_mongo-1.3.1-5.2-vc9.dll

為什麼要選擇1.3版本,你會發現如果是1.2.10版本thinkphp會報錯的,1.3以下版本是沒有mongoClient這個類的

if ( !class_exists('mongoClient') ) {

    hrow_exception(L('_NOT_SUPPERT_').':mongoClient');

}

下面就是可以phpinfo來測試了

6、簡單的moogodb操作

use admin
db.addUser('admin','123456')
show users相當於db.system.users.find()
mongo test //建立了一個test表
db.addUser('test','123456')
db.removeUser("test")
db.createCollection("collName", {size: 20, capped: 5, max: 100});

對於mongodb,系統有使用者表,每個資料庫也有使用者表,但是貌似單獨在使用者表中建立的使用者是無法直接存取mongodb的,非得要到admin庫裡面auth一下才可以

二、LINUX安裝配置

將mogodb裝在了/usr/local/src/mongodb/目錄,資料庫在/data/mongodb/db裡,記錄檔在/data/mongodb/logs裡面

cd /usr/local/src/
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz
tar zxvf mongodb-linux-x86_64-2.4.8.tgz
ln -s mongodb-linux-x86_64-2.4.8 mongodb
mkdir -p /data/mongodb/db
mkdir -p /data/mongodb/logs
cd /usr/local/src/mongodb/bin
./mongod --dbpath=/data/mongodb/db --logpath=/data/mongodb/logs/mongodb.log --logappend

注意這個時候會提示all output going to mongodb.log,這個時候不要control+c終止了,重新開個命令列

cd /usr/local/src/mongodb/

./mongo

use admin

db.addUser("admin","123456")

這樣就可以退出了。


其他網上是讓這樣操作,其實我是沒有實驗成功的
echo "/home/mongodb/bin/mongod --dbpath=/mongodb_data/db --port=27017 --logpath=/mongodb_data/logs/mongodb.log --logappend --auth" >> /etc/rc.local

上面是設定開機啟動的步驟,我沒有實驗成功,我是用如下代碼實驗成功的,MONGODB沒有啟動指令碼,需要自己寫

MONGODB設定檔的啟動指令碼如下:

#!/bin/sh## mongodThis shell script takes care of starting and stopping# the MySQL subsystem (mongod).## chkconfig: - 64 36# description:MySQL database server.# processname: mongod# config: /etc/mongodb.conf# pidfile: /var/mongodb/logs/mongod.pid### BEGIN INIT INFO# Provides: mongod# Required-Start: $local_fs $remote_fs $network $named $syslog $time# Required-Stop: $local_fs $remote_fs $network $named $syslog $time# Short-Description: start and stop MySQL server# Description: MySQL database server### END INIT INFOexec="/usr/local/src/mongodb/bin/mongod"prog="mongod"mongodpidfile="/data/mongodb/mongod.pid"[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$proglockfile=/var/lock/subsys/$progstart(){    [ -x $exec ] || exit 5    $exec --config /usr/local/mongodb/bin/mongodb.confreturn 1;}stop(){    kill $(ps -ef | grep -v "grep" | grep "$prog" | awk '{print $2}')     return 1;} restart(){    stop    start}# See how we were called.case "$1" in  start)    start    ;;  stop)    stop    ;;  restart)    restart    ;;  *)    echo $"Usage: $0 {start|stop|restart}"    exit 2esacexit $?
這個檔案儲存為mogo

然後cp /home/mogo /etc/init.d/mongod

chmod +x /etc/init.d/mongod

chkconfig --add mongod

chkconfig mongod on

service mongod start

要注意mongodb.conf

# mongo.conf# where to logdbpath=/data/mongodb/dblogpath=/data/mongodb/logs/mongodb.loglogappend=true# fork and run in backgroundfork = trueport = 27017auth = true
用這個就行了,儲存在

【PS】下載的時候注意MONGODB版本問題,不要32位系統下載成64位的了,否則是無法執行的


sh /home/yanyun/meizitu/deploy/deploy_restart.sh


附加:WINDOWS伺服器備份到LINUX伺服器
備份資料庫(這裡是從windows備份)
cd F:\mongodb-win32-x86_64-2008plus-2.4.1\bin
mongodump -h localhost -d meizitu -u admin -p xiaobaobei -o d:\meiziback

恢複資料庫(恢複到linux,提前將檔案壓縮後下載到了linux然後解壓到了meizitu目錄中)
mongorestore -d meizitu --drop /mongodb_data/db/meizitu

添加訪問使用者(預設的mongodb是沒有使用者名稱密碼是可以直接存取的)
cd /home/mongodb/bin
./mongo
show dbs
use admin
show collections
db.addUser('root','pwd')
#show collections(報錯,提示not authorized for query on admin)
#然後輸入
db.auth('root','pwd')
show collections



如下我自己還沒有檢測:

mongodb的php驅動安裝,使用phpize編譯mongodb驅動擴充 將mongodb驅動解壓,使用unzip命令
unzip mongodb-mongo-php-driver-(xxx: version).zip [root@localhost ~]# unzip mongodb-mongo-php-driver-1.3.0beta2-134-g606c757.zip [root@localhost ~]# cd mongodb-mongo-php-driver-606c757 [root@localhost ~]# /usr/local/php/bin/phpize [root@localhost ~]#  ./configure --with-php-config=/usr/local/php/bin/php-config --enable-mongo
[root@localhost ~]# make && make install [root@localhost ~]# mkdir /usr/local/php/ext      //php下建立ext目錄,用來存放php擴充 [root@localhost ~]# cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/mongo.so /usr/local/php/ext/ 
修改php.ini,開啟mongo.so,在php.ini中加入一行 [root@localhost ~]#  vim /usr/local/apache/conf/php.ini 
extension=/usr/local/php/ext/mongo.so [root@localhost ~]# service httpd restart

rockmongo配置(類似phpMyAdmin的mongodb管理工具) 將rockmongo解壓縮後,移至/usr/local/apache/htdocs/下面 修改資料庫連接配置,這個檔案跟phpMyAdmin非常類似 [root@localhost ~]# vim /usr/local/apache/htdocs/rockmongo/config.php      $MONGO["servers"][$i]["mongo_name"] = "Localhost";                    //伺服器名稱,可以自訂     $MONGO["servers"][$i]["mongo_host"] = "127.0.0.1";                     //伺服器IP地址     $MONGO["servers"][$i]["mongo_port"] = "27017";                          //mongodb連接埠     $MONGO["servers"][$i]["mongo_auth"] = false;                               //mongodb是否需要使用者名稱密碼驗證     $MONGO["servers"][$i]["mongo_user"] = "MONGO_USERNAME";     //mongodb資料庫使用者名稱     $MONGO["servers"][$i]["mongo_pass"] = "MONGO_PASSWORD";     //mongodb資料庫密碼     $MONGO["servers"][$i]["control_auth"] = true;                                 //控制台是否需要驗證(必須開啟true)     $MONGO["servers"][$i]["control_users"]["admin"] = "admin";            //控制台登入的使用者名稱及密碼(前一個為使用者名稱,後一個為密碼)
rockmongo登入地址,使用者名稱密碼即為控制台的使用者名稱及密碼 http://192.168.0.21/rockmongo/


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.