debian üzerinde mongodb kurulumu
Kurulum
> apt-get search mongodb
Debian linux sürümünde mongo kurulumu https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/#overview üzerindeki işlemler sırasıyla takip edilir. Genelde mongo reposu eski kaldığı için bu sayfadaki yeni repo eklenir ve ondan sonra yeni sürüm yükleme yapılır.
> cat /etc/mongod.conf mongo
config dosyasının türü yaml o yüzden yaml uzantılı dosyayı validation için http://codebeautify.org/yaml-validator kullanılabilir. Yaml dosyasında tab kullanılmıyor, tüm boşluklar space ile bırakılıyor. Tab kalırsa dosya parse edilirken hata verir.
mongoyu dışarı bağlantılara açmak için aşağıdaki iptable üzerinde aşağıdaki rulelar eklendi
1- iptables eklendi (kaynak:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/#overview)
sudo iptables -A INPUT -s 213.243.28.20 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -d 213.243.28.20 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
2- sonra mongod config dosyasına
> sudo nano /etc/mongod.conf
içinde
bindIp: 127.0.0.1,XXX.XXX.XX.XX
ikinci ip virgül eklenerek düzenlendi
> sudo service mongod restart
test makinesinden mongo 213.243.28.20:27017 olarak çağrıldı geldi
daha sonra authentication sağlamak için
/etc/mongod.conf dosyası içindeki #security önündeki yorum satırı olduğunu gösteren # kaldırıldı ve authentication: 'enabled' eklendi
>sudo service mongod restart
dememize rağmen aşağıdaki hata alındı, bu hata logunda görüldüğü üzere permission denied hatası veriyor.
2017-03-13T12:03:27.303+0300 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
mongo servisi bir türlü başlamıyordu ve hata veriyordu mongonun loguna baktığımızda (log dosyasının yerine /etc/mongod.conf içinden bakılır)
2017-03-13T12:11:55.534+0300 E STORAGE [initandlisten] WiredTiger error (13) [1489396315:534081][5425:0x7fbe1d862cc0]
, file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied
2017-03-13T12:11:55.534+0300 I - [initandlisten] Assertion: 28595:13: Permission denied src/mongo/db/storage/wi
redtiger/wiredtiger_kv_engine.cpp 267
2017-03-13T12:11:55.535+0300 I STORAGE [initandlisten] exception in initAndListen: 28595 13: Permission denied, termi
nating
2017-03-13T12:11:55.535+0300 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-03-13T12:11:55.535+0300 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2017-03-13T12:11:55.535+0300 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-03-13T12:11:55.535+0300 I CONTROL [initandlisten] now exiting
2017-03-13T12:11:55.535+0300 I CONTROL [initandlisten] shutting down with code:100
Hatayı düzeltmek için önce Bu arada /var/lib/mongodb altındaki dosyalar
> rm -r *
ile silindi. sonra aşağıdaki komut çalıştırıldı
sudo chown -R mongodb:mongodb /var/lib/mongodb
dedikten sonra mongodb tekrar erişilebilir olarak ayağa kalktı.
ancak security: authentication:enabled ikinci defa denememizde hata verdi
exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /var/lib/mongodb, terminating
görüldüğü üzere log hiç bir şey ifade etmiyor. Hatayı göstermiyor. Bunun için
> sudo service mongod status
dediğimizde hata yaml dosyasında syntax error olduğunu ve sayfada bir tab olduğu için düzgün parse edemediğini ifade ediyor. Ayrıca authentication : enabled ifadesi string olmalıymış o yüzden
authentication 'enabled' şeklinde yazılması gerekiyor.
authentication 'enabled' şeklinde yazılması gerekiyor.
Hata logu
mongod.service - High-performance, schema-free document-oriented database Loaded: loaded (/lib/systemd/system/mongod.service; disabled) Active: failed (Result: exit-code) since Pzt 2017-03-13 13:02:55 +03; 49s ago Docs: https://docs.mongodb.org/manual Process: 15075 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (code=exited, status=2) Main PID: 15075 (code=exited, status=2) Mar 13 13:02:55 fanmongodblog systemd[1]: Started High-performance, schema-f.... Mar 13 13:02:55 fanmongodblog mongod[15075]: Error parsing YAML config file:...n Mar 13 13:02:55 fanmongodblog mongod[15075]: try '/usr/bin/mongod --help' fo...n Mar 13 13:02:55 fanmongodblog systemd[1]: mongod.service: main process exite...T Mar 13 13:02:55 fanmongodblog systemd[1]: Unit mongod.service entered failed.... Hint: Some lines were ellipsized, use -l to show in full.
mongod.conf |
User yaratma işlemleri için kaynak(http://ogankeskiner.blogspot.com.tr/2017/01/mongodb-authentication.html)
Yorumlar
Yorum Gönder