mongodb windows下以及linux下的配置

1、WINDOWS環境php

一、下載mogodblinux

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

MongoDB最新版本下載在官網的DownLoad菜單下:http://www.mongodb.org/downloads
github

官網有時候打不開,下載解壓後將bin放在D:\APMServ5.2.6\Mongo目錄mongodb

二、建立文件夾thinkphp

在D:\APMServ5.2.6\Mongo建立data文件夾,建立conf文件夾,而後再data文件夾建立db文件夾跟log文件夾shell

在conf中建立mongodb.conf,代碼以下數據庫

# Start MongoDB as a daemon on port 8908

port = 27017
journal = true
rest = true
auth = false
logappend = true
dbpath = D:/APMServ5.2.6/Mongo/data/db
logpath =  D:/APMServ5.2.6/Mongo/data/log/mongod.log


數據庫放在data/da目錄下,日誌放在data/log目錄apache

三、執行命令,安裝mongodb數據庫vim

進入命令行,輸入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)

四、將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是沒法成功的。
五、讓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來測試了

六、簡單的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一下才能夠

2、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
#
# mongod	This 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 INFO

exec="/usr/local/src/mongodb/bin/mongod"
prog="mongod"

mongodpidfile="/data/mongodb/mongod.pid"

[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/$prog


start(){
    [ -x $exec ] || exit 5
    $exec --config /usr/local/mongodb/bin/mongodb.conf
return 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 2
esac

exit $?

這個文件保存爲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 log
dbpath=/data/mongodb/db
logpath=/data/mongodb/logs/mongodb.log
logappend=true
# fork and run in background
fork = true
port = 27017
auth = 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/

相關文章
相關標籤/搜索