몽고DB를 실습하려고 우분투에서 4.0 버전을 설치하고

$ sudo service mongod start

타이핑 하고 엔터키를 딱 눌렀는데

 

mongod: unrecognized service

라는 에러를 뱉었다.

 

service라는 명령어는 알아보니 /etc/init.d에 해당 파일이 있을 때 동작하는 방식이다.

내 경우엔 mongod라는 파일이 존재하지 않았다.

 

구글링을 하면 MongoDB를 재설치해라, 또는 mongod 대신 mongodb를 타이핑해라. 등의 내용이 대부분이다.

 

$ sudo apt-get purge mongodb-org*

명령으로 삭제하고,

 

$ sudo apt autoremove

해 주고,

 

$ sudo rm -r /var/lib/mongodb
$ sudo rm -r /var/log/mongodb

디렉토리 날려주고...

다시 설치를 수십 번 반복.

 

이래도 안 되니 아래 방법을 시도.

$ sudo apt-get install --reinstall mongodb-org

 

하지만 이것 역시 안 됨.

mongodb라는 명령어는 MongoDB 2 버전을 깔았을 때 사용하는 커맨드인 듯 했다.

 

커맨드로 MongoDB를 설치하면 동작하는 것이 당연하다는 듯이 교재에도, 공식 매뉴얼에도 service 스크립트를 만들어라, 등록해라 라는 내용은 찾아볼 수 없었다.

 

답답해서 내가 찾아보니 이런 링크가 있었다.

https://github.com/mongodb/mongo/blob/master/debian/init.d

 

데비안 계열의 우분투에서 쓰는 init script의 내용이다.

$ sudo vi /etc/init.d/mongod

위의 내용을 붙여넣기 하고, wq로 저장했다.

 

$ cd /etc/init.d
$ ls -al

확인해 보면 방금 생성한 mongod 파일만 색상이 다르다. 권한이 다르다.

 

$ chmod 755 mongod

권한을 다른 파일과 동일하게 설정해 주었다.

그 후,

 

# service mongod start

또는

$ sudo service mongod start

하면

 

* Starting database mongod 					[ OK ]

라고 이쁘게 뜬다.

끗!!

나처럼 윈도우10을 사용하면서 우분투(리눅스) 환경도 함께 사용하는 경우(WSL), 

우분투가 윈도우 위에서 돌아가는 듯 보이지만 엄연히 별개의 운영체제가 분리되어 동작하는 중이었다. (당시 이에 관한 이해가 부족)


가령, Node.js를 설치하는 방법도 윈도우에서는 https://nodejs.org/에서 인스톨러 파일(.exe 등)을 다운받아 설치한다고 대부분의 교재에서 확인할 수 있고,

우분투 등 리눅스에서는 npm 등 패키지 매니저를 이용해 설치하는 것이 선호되는 방법이다.


Node.js를 설치하면 윈도우의 기본 경로는 보통

C:\Program Files\nodejs

다.

 

윈도우에서 설치된 우분투 리눅스의 npm으로 설치한 경로는 내 경우엔

/usr/bin

이다.

 

따라서 윈도우용과 우분투용을 별개로 생각하고 설치해줘야 한다는 것이다.

 

MySQL의 경우에도 저번 글에 언급했지만, 각각 설치를 해주었는데 둘 다 기본 포트가 3306으로 설정되기 때문에, 먼저 설치한 것이 선점하면 나머지 하나가 켜지지 않는 문제가 생겼다.

 

설치 과정에서 포트를 변경해주는 것이 가장 편하고, 이미 설정했다면 설정 파일을 수정해서 변경해주면 된다.

(하나를 끄고, 사용하는 방법도 있지만 매번 켜고 끄는 것이 번거롭기 때문에 포트를 변경해주는 것이 나을 것이다.)

 

 

각설하고,

 

Node.js 실습 과정에서 난 처음부터 우분투 환경에서 실습을 진행하였다.

저번 글처럼 MySQL의 포트를 변경했는데, 윈도우는 그대로 3306을 사용하기로 하고, 우분투의 것을 3307로 변경했다.

데이터베이스 실습을 하면서 예제 데이터를 우분투의 MySQL에 만들어두었다.

 

Sequelize를 사용하는데 MySQL의 포트를 지정해주지 않았더니 기본 포트인 3306을 인식해서 윈도우용을 잡아 데이터가 나오지 않았다. (윈도우 MySQL에는 예제 데이터를 넣지 않았다.)

 

따라서, 포트를 변경하려면 Sequelize의 config/config.json 파일을 수정해야 한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
{
  "development": {
    "username""root",
    "password""1234",
    "database""nodejs",
    "host""127.0.0.1",
    "port"3307,
    "dialect""mysql",
    "operatorsAliases"false
  },
  ...
}

port만 추가해주니 잘 된다.

 

끝.

'개인 공부 > Node.js' 카테고리의 다른 글

윈도우10 WSL에서 bcrypt 설치 오류 해결 방법  (0) 2018.12.26

+ Recent posts