인프런 커뮤니티 질문&답변

이가은님의 프로필 이미지
이가은

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

우분투에 MySQL 설치하기

백엔드 root 서버에서 npx sequelize db:create을 하면 command not found: sequelize이 뜹니다.

해결된 질문

작성

·

339

·

수정됨

0

안녕하세요! 제로초님
[리뉴얼] React로 NodeBird SNS 만들기 강의의
섹션 6. AWS에 배포하기: 우분투에 MySQL 설치하기 까지 진행한 수강생 입니다!

 

저는 windows 10을 사용하고 있으며, 윈도우 서비스에서 MySQL을 실행한 상태입니다.
아마존의 front와 back 인스턴스가 잘 실행되고 있음을 확인하였습니다.
사전에 AWS 우분투 프론트와 백엔드 서버 두 곳 모두 node와 npm을 설치하였습니다.
node 버전은 v14.21.3, npm 버전은 6.14.18을 설치하였습니다.
AWS 우분투 백엔드 서버와 root 서버에서 MySQL 8 버전을 완전 삭제한 후 재설치 하였습니다.
(원래 우분투 백엔드 서버에만 설치해야 하는데 루트 경로에 설치하는 바람에 재설치를 진행하였습니다!)

 

사진과 같이 백엔드 root 서버 터미널에 npx sequelize db:create을 입력하면
command not found: sequelize (sequalize 명령을 찾을 수 없습니다.)가 뜹니다.10.PNG 

 

문제를 해결하기 위해서 첫 번째로 sequelize와 sequelize-cil이
back 폴더에 제대로 설치가 되어있는지 확인했습니다.
아래 사진과 같이 back 폴더의 package.json 파일에서 시퀄라이즈 잘 설치되어 있음을 확인하였습니다.9.PNG 

 

두 번째로, 우분투 리눅스 루트 command not found: sequelize,
npx sequelize db:create command not found: sequelize 해결
시퀄라이즈 command not found 해결
등등의 command not found: sequelize 관련 키워드를 구글링 하고,
노드버드 강의 커뮤니티 글을 보던 중
npx sequelize db:create 대신 sudo npx sequelize db:create 사용하는 방법을 찾았습니다.
sudo를 사용해 npx sequelize db:create을 시도하였으나
여전히 sequelize 명령어가 없다고 뜹니다.8.PNG

어떻게 하면 백엔드 root 서버에서 npx sequelize db:create을 성공할 수 있을까요?
혹시 관련 키워드나 힌트를 주실 수 있나요?
항상 강의 열심히 듣고 있습니다. 긴 글 읽어주셔서 감사합니다 제로초님!

답변 2

0

이가은님의 프로필 이미지
이가은
질문자

비밀번호를 모두 통일하여 문제를 해결하였습니다!

성공했다.PNG

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

sudo npm i -g sequelize-cli 하시고

sudo sequelize db:create 해보세요

이가은님의 프로필 이미지
이가은
질문자

늦은 시간에도 친절히 답변해주셔서 감사합니다!

sudo npm i -g sequelize-cli와 sudo sequelize db:create를 입력하였습니다!
하지만 sudo sequelize db:create를 입력하면 아래 메시지가 뜹니다.

ERROR:
The file config/config.js already exists. Run command with --force to overwrite it.
오류: config/config.js 파일이 이미 있습니다. --force로 명령을 실행하여 덮어씁니다.

image

그리고 sudo npm i -g sequelize-cli 를 한 뒤에 npx sequelize db:create나
sudo npx sequelize db:create 로 DB를 만드려고 하면 위 사진처럼 에러가 뜹니다.
ERROR: Access denied for user 'root'@'localhost' (using password: YES)
오류: 'root'@'localhost' 사용자에 대한 액세스가 거부되었습니다(암호 사용: YES)


컴퓨터를 껐다가 다시 루트 경로에 진입한 후 올바른 비밀번호를 입력하면
비밀번호가 틀리지 않았음에도 MySQL 접속 자체도 되지 않았습니다.
(서비스에서 MySQL을 실행한 상태입니다!)


MySQL에 잘 접속이 될 때는 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY''
명령어로 비밀번호를 수정하고, FLUSH PRIVILEGES 로 해당 작업을 mysql 내에서 저장을 한 상태인데도 그럽니다.

 

여기서 의심이 든 점이 있습니다!
Access denied for user 'root'@'localhost' (using password: YES)
에러는 비밀번호가 틀렸을 때 발생하는 에러로 알고 있습니다!


제로초님께서는 아래의 비밀번호를 모두 'nodejsbook' 으로 통일하셨습니다.
1. 로컬 백엔드 폴더의 .env 파일의 DB 비밀번호,
2. 컴퓨터에 깔린 MySQL 워크벤치의 비밀번호,
3. root 백엔드 서버의 MySQL에 접속할 때의 비밀번호,
4. root 백엔드 .env 파일에 적은 DB 비밀번호

제 경우는 MySQL 비밀번호 보안 강도를 STRONG으로 설정했기 때문에
3번 root 백엔드 서버 MySQL에 접속할 때의 비밀번호를 제외하고
전부 '0000'으로 설정하였습니다! 혹시 네 곳의 비밀번호를 하나로 통일해야 할까요?
답글이 너무 길어져서 죄송하고 끝까지 읽어주셔서 감사합니다!

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

의심가는 부분은 sudo su 부분입니다. mysql 비밀번호가 틀렸다 뜨는데 sudo su를 하지 말고 비번을 바꾸세요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1과2의 비밀번호가 같아야하고 3과4의 비밀번호가 같아야합니다.

1과2랑 3과4는 서로 다른 컴퓨터입니다

이가은님의 프로필 이미지
이가은

작성한 질문수

질문하기