강의

멘토링

커뮤니티

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

sunm309님의 프로필 이미지
sunm309

작성한 질문수

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

우분투에 MySQL 설치하기

npx sequelize db:create 에러

작성

·

993

0

npx sequelize db:create 했을 때 다음과 같은 에러가 발생합니다.
개인적으로 진행하고 있는 프로젝트에 적용하며 따라하는 중이라서 프로젝트의 내용은 제로초님과 똑같지는 않지만, 설정은 모두 동일하게 진행했습니다.
아래 사진은 config/config.js 입니다.
에러 메시지를 아무리 검색해봐도 모르겠어서.. 도와주시면 감사하겠습니다ㅜㅜ

답변 4

0

sunm309님의 프로필 이미지
sunm309
질문자

강의 보면서 비밀번호 설정 모두 따라했고, mysql -u root -p로 mysql 접속은 문제없이 되는 상황입니다ㅠ

mysql-server는 root가 아닌 ubuntu에 설치했습니다!

0

sunm309님의 프로필 이미지
sunm309
질문자

env는 원래

require('dotenv').config();

const env=process.env;

이런식으로 했었는데, 지금은 제로초님과 똑같이

const dotenv=require('dotenv');

dotenv.config();

로 바꾼 상태입니다! 그리고 HOST와 같은 대문자들을 모두 소문자로 바꾸고 npx sequelize db:create를 실행하니 이번에는 Access denied가 발생합니다ㅜㅜ

아래는 다른 질문을 보고 user의 plugin을 확인한 것 입니다!

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

process.env.HOST같은 것은 그대로 대문자여야합니다.

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

바꾸셨으면 어떻게바꿨는지도 보여주세요. 잘못 바꾸셨을겁니다

sunm309님의 프로필 이미지
sunm309
질문자

config/config.js입니다

이런식으로 변경했는데 잘못 변경한걸까요..?!

혹시몰라 아래 model/index.js 일부도 남겨봅니다! 

추가로 model/index.js에 process.env.NODE_ENV가 있는데

저는 .env 파일에 NODE_ENV가 없습니다.. 혹시 추가해야할까요..??

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

dbConfig.host 입니다. NODE_ENV는 어차피 development라서 상관없고요.

dotenv.config() 밑에 console.log(process.env)해서 host들어있는지 확인해보세요.

sunm309님의 프로필 이미지
sunm309
질문자

dbConfig.host로 변경했습니다! console.log(process.env)로 host 확인해보았는데 host는 들어있었습니다.

다른 시도로,

host를 기존 127.0.0.1에서 EC2 인스턴스 IP로 변경하고, 보안그룹에서 인바운드 규칙에 제 IP 주소를 추가하였더니

로컬에서 mysql -u root -p -h [EC2 IP주소] 명령으로 접속가능하고 mysql 워크벤치에서도 접속이 되는데

npx sequelize db:create를 하니 아래 에러가 발생합니다..ㅜㅜ

검색해보니 보안그룹에 추가를 안해서 발생할 수 있다는데, 보안그룹은 이미 추가했고 무엇이 문제인지 모르겠습니다ㅠ

 

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

process.env.MYSQL_HOST같은 게 전부 다 잘 들어있었다는 말씀이시죠? ec2에서 mysql -uroot -p 로는 접속 잘 되시나요?

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

아 된다고 하셨군요. https://github.com/ZeroCho/nodejs-book/issues/45 이것도 입력하신 상태이고요?

sunm309님의 프로필 이미지
sunm309
질문자

네네! 첨부해주신 깃허브 링크에 있는 명령어도 입력한 상태입니다.. 

웹스톰에서 npx sequeliae db:create를 하면 아래와 같은 에러가 발생하고

iterm에서 같은 명령어를 입력하면 아래와 같은 에러가 발생합니다ㅜ

sunm309님의 프로필 이미지
sunm309
질문자

혹시  netstat -tln | grep mysql을 입력했을 때 아래처럼 나오는데 여기에 문제가 있는걸까요..??

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

웹스톰과 iterm이 노드와 시퀄라이즈 버전이 다 다른데 이게 EC2의 mysql을 바라보고 있는 게 맞나요? 둘 다 아니거나 둘 중 하나만 바라보고 있는 건 아닌가요? ec2에는 ssh로 접속하고 계신가요?

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

$ curl localhost:3306
curl: (1) Received HTTP/0.9 when not allowed

이렇게 나오는 게 3306에서 mysql 잘 실행되고 있는 겁니다.

sunm309님의 프로필 이미지
sunm309
질문자

ec2에는 ssh로 접속하고 있는게 맞습니다.

curl localhost:3306를  입력했을 때,

웹스톰에서는 curl: (1) Received HTTP/0.9 when not allowed이 나오고

iterm(우분투)에서는 아무것도 뜨지 않고 멈춥니다.. 

우분투와 로컬 모두 .env의 MYSQL_HOST에 EC2의 IP를 넣었는데, EC2의 mysql을 바라보게 하기 위해서 더 해야하는 것이 있을까요..??

아래는 우분투 환경인데 혹시몰라 첨부합니다.

sunm309님의 프로필 이미지
sunm309
질문자

구글링하면서 이것저것 수정하다보니 해결되었습니다! 

정확히 무슨 이유였는지는 모르겠지만 도와주셔서 감사합니다!!

0

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

env는 어디서 나온건가요? process.env 대신

또 HOST 이런게 대문자라서 그 점도 의심됩니다.

0

sunm309님의 프로필 이미지
sunm309
질문자

혹시 몰라 sequelize와 sequelize-cli 버전도 제로초님과 똑같이 설치했는데 에러가 계속 발생합니다ㅠㅠ

sunm309님의 프로필 이미지
sunm309

작성한 질문수

질문하기