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登陸地址,用戶名密碼即爲控制檯的用戶名及密碼