ugrás a tartalomhoz

mongodb ubuntu

Castor87 · 2012. Már. 12. (H), 23.11
sziasztok,

Az alábbi paranccsal telepítettem a mongodb-t, ubuntu 11.10 rendszerre:
sudo apt-get install mongodb-10gen

A "mongo" paranccsal be tudok lépni. De php-val nem érem el és nincs nyitva a 27017 port sem.

Van valakinek ötlete miért nem tudok csatlakozni rá?
dbpath = /var/lib/mongodb
port = 27017
bind_ip = 127.0.0.1
logpath = /var/log/mongodb/mongodb.log
logappend = true
noauth = true # use 'true' for options that don't take an argument
verbose = true # to disable, comment out.
nohttpinterface = false
 
1

Fut?

Poetro · 2012. Már. 12. (H), 23.19
És egyébként fut a MongoDB démonja? Mert egyébként nehéz lesz hozzáférni.
2

mongodb 638 1.5 2.5

Castor87 · 2012. Már. 12. (H), 23.25
mongodb    638  1.5  2.5  95324 12952 ?        Ssl  22:24   0:00 /usr/bin/mongod --config /etc/mongodb.conf
4

Tűzfal?

Poetro · 2012. Már. 13. (K), 00.07
Azt is érdemes lehet megnézni, hogy esetleg a tűzfal nem blokkolja-e azt a portot, valamint érdemes lenne megnézni, hogy a mongo paranccsal tudsz-e csatlakozni a host:port-hoz.
3

extension

RobbeR · 2012. Már. 13. (K), 00.04
A php.ini-be beírtad a következő sort?
extension=mongo.so
5

Nem és nem is találom sehol a

Castor87 · 2012. Már. 13. (K), 01.06
Ez volt a gond. Fel kellett raknom a php-pear és php-dev csomagokat, majd pecl install mongo parancs kiadása után egy apache restarttal működik a dolog. Mondanom se kell, az előbbi parancsok kismillió függőséget magukkal rántottak, amit szerettem volna elkerülni.

Viszont a 27017 portot még most se látom nyitva, érdekes. :)
6

A PECL csomagokból ki lehet

Hidvégi Gábor · 2012. Már. 13. (K), 08.59
A PECL csomagokból ki lehet szedni a kiterjesztések forráskódját, egy alkönyvtárban vannak benne, és azokat a pear és a pecl telepítése nélkül is lehet fordítani a phpize, configure és make parancsok segítségével (a php-dev-ben van benne a phpize).

Ha megoldható, akkor érdemes unix socketen keresztül kapcsolódni szolgáltatásokhoz, MySQL esetén pl. állítólag 10%-kal gyorsabb így az elérés.
7

Hogy próbálod ellenőrizni,

H.Z. v2 · 2012. Már. 13. (K), 13.47
Hogy próbálod ellenőrizni, hogy nyitva van-e a port?
Én debianra tettem fel, mert az ubuntumat nem akartam teleszemetelni a mongodb csomag rengeteg függőségével, de ott azonnal elindult, gond nélkül (PHP-t nem néztem hozzá)
root jogokkal indítva egy
netstat -ltp
meg kell mutassa a nyitott(? mit nevezünk nyitottnak :) ) tcp portokat és azt is, hogy mely processz ül rajtuk.

Egyébként egész izgalmas darabnak tűnik a tutorial alapján, bár a performancián még volna mit csiszolgatni. :)
Az meg külön érdekesség, hogy ubuntun magával hozná a fél világot, egy gnome-os debianra meg csak néhány libet telepít függőségként.
8

Használ valaki ilyet élesben?

H.Z. v2 · 2012. Már. 14. (Sze), 19.13
A topik hatására átfutottam egy mongodb tutorialt. Eleinte úgy éreztem, hogy ez egy olyan adatbáziskezelő, amit tudnék szeretni is. Aztán beleakadtam két zavaró dologba, amitől a lelkesedésem is lohadásnak indult...
1. Numerikus értékeket kizárólag lebegőpontos formában képes tárolni.
2. A relációs adatbáziskezelőkben megszokottaktól eltérően a mongodb nem képes kapcsolatokat kezelni, semmilyen formában (forrás: stackoverflow.com, nem néztem utána alaposabban)

Ezek után kíváncsi lettem: közületek valaki használja-e élesben és ha igen, mire?
(mintha a google és még egy-két nagyobb cég is használná, ezeknek utána tudok nézni, inkább a személyes tapasztalataitokra lennék kíváncsi - feltéve, hogy van)
9

Igen

Poetro · 2012. Már. 14. (Sze), 19.45
Mi használjuk már vagy két éve élesben. Az Examiner.com mögött is MongoDB van. Mivel dokumentumokat tárol az adatbázis ezért nem is igazán van szükség kapcsolatokra. És természetesen mivel nem relációs, ezért nincs is mit gondolkodni normálformákon stb, mivel azoknak csak relációs adatbázisra van értelmük. Ezen kívül természetesen lehet kapcsolatokat leírni az egyes dokumentumok között (megjegyzésként, kb 2 kattintás lett volna, vagy egy keresés és egy kattintás), ugyanakkor ez a linkelés nem ajánlott, mivel lassú, és kliens oldalon történik. Mivel én személyesen nem foglalkozok igazából adatbázisokkal, csak annyit tudok mondani, hogy annyi adatot, amennyit kezelünk, ennyi szerveren nehéz lenne ilyen hatékonyan relációs adatbázissal megoldani (legalábbis Drupal alatt, ahol ez kismillió joint szülne). Így minden egyes dokumentum (legyen az egy felhasználó, egy hír, egy kép stb.) egyetlen rekord az adatbázisban, és ezen dokumentumok kikeresése az indexek miatt nagyon hatékony. Az adatbázisba írásról nem tudok nyilatkozni, mindenesetre a kiolvasás nagyon gyors, és a mi rendszerünkben ebből van több léptékkel több.

Ha rákeresel, lehet, hogy valaki a cégnél még esettanulmányt is írt a beüzemelésről stb.
10

Köszi. Tény, hogy sok

H.Z. v2 · 2012. Már. 14. (Sze), 19.55
Köszi. Tény, hogy sok energiát nem fektettem a keresgélésbe.
Próbáltam valami saját ötletre alkalmazni a mongodb tudását. SQL-es előélettel kapásból az volt a gondolatom, hogy valami join-féleség kellene. Erre rákerestem, mire a határozott válasz annyi volt, hogy ilyen nincs benne, kliens oldalon kell összetákolni.

Egyébként a sebességet jó, hogy említed: az a tutorial valami iszonyat lassú...
Először azt hittem, az egész rendszer ilyen (>0.5sec válaszidő egy kétsoros "táblából"), de szerencsére kipróbáltam saját gépen is. :)
11

Esettanulmányok

Poetro · 2012. Már. 14. (Sze), 19.58