태그 보관물: mongodb

mongoDB ReplicaSet 설정시 couldn’t initiate : can’t find self in the replset config my port 오류

 

mongoDB ReplicaSet 설정시 rs.initiate() 실행시 오류가 발생하며 정상적으로 설정이 진행이 안되는 문제가 있었습니다.

[root@mongo03 cfg]# mongo localhost:31000
MongoDB shell version: 2.4.4-pre-
connecting to: localhost:31000/test
Welcome to the MongoDB shell.
For interactive help, type “help”.
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> use admin
ㅁswitched to db admin
> rs.initiate()
{
“info2” : “no configuration explicitly specified — making one”,
“me” : “mongo03:31000”,
“ok” : 0,
“errmsg” : “couldn’t initiate : can’t find self in the replset config my port: 31000
}

문제 해결 : 해당 에러가 발생하는 건 mongoDB에서 IP로 해당 서버 DB에 접근하는 것이 아닌 HOSTNAME으로 접근하기때문에 발생한 문제입니다. 에러메세지를 보면 “me”라고 된 부분에 hostname이 표시되어있습니다. 해당 hostname으로 mongoDB에 잘 찾아갈 수 있게 /etc/hosts파일에 해당 hostname을 추가해주면 해결이 가능합니다.

 

 

mongoDB DB Drop.

mongoDB DB Drop


 







 


  mongos> use logdb;  <- 제거할 DB로 이동


  switched to db logdb


 


  mongos> db.dropDatabase()   <- 대소문자 주의하여 drop


  { “dropped” : “logdb”, “oko” : 1 }


 


 


 


SQL에서는 쉽게 하는건데 mongoDB는 생소하여 이런 기본적인 부분조차 외우기가 힘드네요 ㅠㅠ


 

PHP에서 mongoDB 사용하기

PHP RPM 설치된 환경.


 


# pecl install mongo  로 설치하면 pecl.php.net 사이트에서 mongo관련 파일을 내려받아 컴파일 하게됨.


컴파일 완료후 /usr/lib64/php/modules/mongo.so 파일이 생성됨.


 


해당 파일을 /etc/php.ini 파일에서 아래와 같이 설정


extension=mongo.so


후에 아파치 재시작


 


phpinfo()를 통해 mongo가 제대로 로딩 되었는지 확인 후 사용

shading rs.initiate() 오류

mongoDB 에서 sharding 설정시,


첫번째 node를 primary로 설정시 rs.initiate()로 설정할 수 있으나, 아래와 같은 오류가 발생하는 경우가 발생


 







[root@loony22-test1 mongodb]# ./mongo mongodbtest:30000
MongoDB shell version: 2.0.6
connecting to: mongodbtest:30000/test


 > rs.initiate()
{
        “info2” : “no configuration explicitly specified — making one”,
        “me” : “mongodbtest:30000”,
        “errmsg” : “couldn’t initiate : can’t find self in the replset config my port: 30000”,
        “ok” : 0
}


 






$ sudo hostname (name chosen above including the .local at the end)

LINUX에서 HOSTNAME확인후 표시되는 HOSTNAME으로 mongo 접근


[root@mongodbtest mongodb]# ./mongo hostname:30000
MongoDB shell version: 2.0.6
connecting to: hostname:30000/test
> rs.initiate()
{
        “info2” : “no configuration explicitly specified — making one”,
        “me” : “hostname:30000”,
        “info” : “Config now saved locally.  Should come online in about a minute.”,
        “ok” : 1
}
>


 


참고 URL :  http://www.mongodb.org/display/DOCS/Replica+Sets+Troubleshooting