MongoDB használatba vétele

(Ubuntu) 2011. szeptember 14. 16:41

Telepítés

A GPG hozzáadásához parancssorban futtasd a következő utasítást:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Az alábbi sorral egészítsd ki a /etc/apt/sources.list fájlt:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Frissítsd a csomag indexeket:

sudo apt-get update

Majd installáld:

sudo apt-get install mongodb-10gen

Felhasználó hozzáadása

Ha sikerült a telepítés, akkor hozzunk létre felhasználókat. Először az administrator felhasználót. Ez a felhasználó egy speciális admin adatbázisban van. Ha nincs admin felhasználó, akkor localhost-on hozzá lehet férni az adatbázishoz hitelesítés nélkül. Admin user hozzááadása:

user@server:~$ mongo
MongoDB shell version: 2.0.0
connecting to: test
> use admin
switched to db admin
> db.addUser("admin", "XXXXXXXX")
{ "n" : 0, "connectionId" : 6, "err" : null, "ok" : 1 }
{
	"user" : "admin",
	"readOnly" : false,
	"pwd" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
	"_id" : ObjectId("4e7096fd4d8c51f6a44371e1")
}
> db.auth("admin", "XXXXXXXX")
1

Felhasználó hozzáadása másik adatbázishoz:

> use mydb
switched to db mydb
> db.addUser("other_user", "XXXXXXXX")
{ "n" : 0, "connectionId" : 6, "err" : null, "ok" : 1 }
{
	"user" : "other_user",
	"readOnly" : false,
	"pwd" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
	"_id" : ObjectId("4e7097fe4d8c51f6a44371e2")
}
> db.auth("other_user", "XXXXXXXX")
1
> 

readonly felhasználó hozzáadása:

> use mydb
switched to db mydb
> db.addUser("readonly_user", "XXXXXXXX", true)

Ha mindez sikerült, akkor nyissuk meg a /etc/mongodb.conf fájlt, keressük meg az alábbi részt és az #auth = true elől vegyük ki a hashmark-ot:

.
.
# Enables periodic logging of CPU utilization and I/O wait
#cpu = true

# Turn on/off security.  Off is currently the default
#noauth = true
#auth = true

# Verbose logging output.
#verbose = true
.
.

Majd indítsuk újra a mongodb-t:

sudo /etc/init.d/mongodb restart

Ha sikerült teszteljk le:

user@server:~$ mongo
MongoDB shell version: 2.0.0
connecting to: test
> use mydb
switched to db mydb
> db.system.users.find()
error: {
	"$err" : "unauthorized db:lang lock type:-1 client:127.0.0.1",
	"code" : 10057
}
> db.auth("other_user", "XXXXXXXX")
1
> db.system.users.find()
{ "_id" : ObjectId("4e7097fe4d8c51f6a44371e2"), "user" : "other_user", "readOnly" : false, "pwd" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
> 


Apache - php

Ha php-val szeretnénk használni, és apache2 a webszerver, akkor:

Ha szükséges, előtte futtassuk:

user@server:~$ sudo apt-get install php-pear
user@server:~$ sudo pecl install mongo

Build process completed successfully
Installing '/usr/lib/php5/20090626/mongo.so'
install ok: channel://pecl.php.net/mongo-1.2.4
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongo.so" to php.ini

Ha végzett, akkor már csak azt kell csinálni amit mond: Kiegészíteni a /etc/php5/apache2/php.ini fájlt a extension=mongo.so sorral.

Majd újraindítjuk a webszervert:

sudo /etc/init.d/apache2 restart
Vissza