環境は Windows 7 + PHP 5.3系 + MongoDB 1.8.5。
MongoDB インストール
http://www.mongodb.org/downloads から Windows 64-bit ver1.8.5 をダウンロード。
解凍してできたディレクトリを mongodb にリネームして C:\mongodb に配置。
データディレクトリを C:\mongodb\data に作成。
コマンドプロンプとから以下実行で起動。終わり。
C:\mongodb\bin\mongod.exe --dbpath C:\mongodb\data
別コマンドプロンプトから以下実行して接続。
> C:\mongodb\bin\mongo.exe MongoDB shell version: 1.8.5 connecting to: test >
試しにデータを登録してみる。大丈夫そう。
> db.test.save( {a:1} )
> db.test.find()
{ "_id" : ObjectId("50ea4dc0178846492bdb8b43"), "a" : 1 }
PHP から mongoDB 触る
https://github.com/mongodb/mongo-php-driver/downloads から DLL をダウンロード、php.ini に「extension=php_mongo.dll」を追加。
まず mongoDB に データベースと認証用ユーザ作っておく。データベース名は mgng、ユーザ名は dbuser、パスワードは password。以下コマンドラインから実行。
> C:\mongodb\bin\mongo.exe
MongoDB shell version: 1.8.5
connecting to: test
> use mgng
switched to db mgng
> db.addUser("dbuser","password")
{
"user" : "dbuser",
"readOnly" : false,
"pwd" : "031cdfcc530b919b7f77efb400f250b7"
}
> quit()
PHP側はこういうコード。username や password に「@」「:」が含まれた場合のことを考えて、$options で渡すようにしとく。
接続成功すると以下みたいな表示が、
Array
(
[0] => Array
(
[hash] => 127.0.0.1:27017;-;mgng/dbuser/9908c9f0881e9b0b2afbf673040eb9c1;5664
[server] => Array
(
[host] => 127.0.0.1
[port] => 27017
[database] => mgng
[username] => dbuser
[auth_hash] => 9908c9f0881e9b0b2afbf673040eb9c1
[pid] => 5664
)
[connection] => Array
(
[last_ping] => 1357537085
[last_ismaster] => 0
[ping_ms] => 0
[connection_type] => 1
[connection_type_desc] => STANDALONE
[max_bson_size] => 16777216
[tag_count] => 0
[tags] => Array
(
)
)
)
)
接続失敗すると(例えばパスワードが違う場合)以下が表示される。
Failed to connect to: 127.0.0.1:27017: Authentication failed on database 'mgng' with username 'dbuser': auth fails
これから MySQL → MongoDB への移行を考える。
≪ 2013-01-08
Excelファイルの内容を生PHPで読み込む
2013-01-04 ≫
1Tのハードディスクを8000円で買った