인프런 커뮤니티 질문&답변
drop database 후 mysql 테이블 삭제
작성
·
506
1
백엔드 서버와 프론트 서버를 npx pm2로 실행시키고 페이지에서 회원가입 후 로그인을 실행하니 네트워크에서 200으로 성공했지만 데이터가 전달이 되지 않았습니다.
강의 중 mysql 데이터베이스 테이블 명을 대문자에서 소문자로 바꾸면 해결된다고 해서 mysql에서 drop database `데이터베이스 이름`;을 했습니다.
그리고 pm2 reload all을 하고 mysql에서 show tables로 테이블을 확인하니까 비워져 있었습니다.
mysql> show tables;
Empty set (0.00 sec)
drop database를 했을때 강사님은 테이블명이 바뀌었던데 왜 저는 삭제가 바로 됐을까요?
이 후 npx sequelize db:create를 하고 pm2 reload all을 했지만 여전히 mysql은 비워져있습니다.
그리고 mysql 워크밴치에 여전히 개발환경에서 넣어놨던 데이터가 배포환경으로 시작했는데 사라지지 않고 있습니다.
어떤 코드가 배포환경으로 시작할때 개발환경에서 저장한 데이터가 사라지고 워크밴치가 리셋이 되는 건지도 궁금합니다.
답변 1
0
네 개발환경과는 상관없을 것이고요.
DB는 존재하는데 테이블이 없는 것은 sequelize.sync()가 제대로 실행되지 않은 것 같은데요. 서버 실행할 때 sequelize 관련 로그들이 주르륵 뜨지 않나요?

아 이런 에러가 뜹니다..!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
이것과 .env비밀번호를 일치 시켰는데 무슨 권한 에러일까요..?
config.js에 비밀번호를 null로 해놨네요 ㅠㅠ
권한 에러는 덕분에 해결됐습니다! 감사합니다.
그런데 여전히 로그인 후 네트워크는 성공인데 me에 데이터가 전달 되지 않는 상황입니다.
DROP DATABASE를 하면 테이블 자체가 사라지구요..

db에 데이터가 들어있는걸 확인하는건 워크밴치를 보는것이죠??
워크밴치에는 아무런 변화가 없습니다. 데이터가 저장이 되지 않는것 같아요.
하지만 회원가입을 누르면 네트워크 200이 뜨면서 성공했다고 하고,

콘솔에는 아래와 같이 찍힙니다.

로그인까지 해봐도 네트워크는 200이 뜨지만 me는 여전히 null입니다.
워크벤치는 개발 환경에 연결된 것 아닌가요? 워크벤치에 배포환경도 세팅 하셨나요? 데이터는 mysql에서 쿼리 날려보셔도 되고요.
혹시 프론트랑 백엔드랑 ip가 다른가요?
워크벤치에 배포환경을 세팅하는게 우분투에 mysql-server과 mysql_secure_installation을 설치하는건가요? 그 과정은 했습니다.
그리고 프론트랑 백엔드 ip는 다릅니다.
back/app.js에는 cors안에 프론트 주소를 입력했고,
front/sagas/index.js에는 baseURL을 백엔드 주소를 입력해놨습니다.
질문이 자꾸 이어지네요 ㅠㅠ 죄송합니다. 우분투에서 mysql 세팅이 됐는지 확인을 어떻게 해봐야할까요??
아뇨 워크벤치에서 접속하는 버튼 만들잖아요. 그걸 개발환경으로만 만드시고 배포환경용 버튼은 안 만드신것같네요. 그리고 백엔드랑 프론트랑 도메인 다르면 로그인 어렵습니다.
버튼을 따로 만들어도 안에 내용이 개발환경용으로 만든 데이터베이스가 그대로 들어있던데 따로만들때 배포환경에 맞는 설정이 따로 있나요..?
@분당꿀이님 database의 이름을 어떻게 수정하셔서 해결하셨나요? 답변주시면 감사하겠습니다 ㅠㅠ
@parksh626
저는 back / config / config.js database 이름을 수정해서 고쳤습니다.
development:{
database: '요기 수정'
}
test:{
database: '요기 수정'
}
production:{
database: '요기 수정'
}
도메인 연결하니 문제가 해결됐습니다!
워크벤치에서 배포된 데이터를 확인하는 버튼은 만들지 못해서 워크벤치로 데이터 내용은 볼 수 없지만 'use 데이터베이스 이름' > 'select * from 테이블명' 으로 데이터가 등록됐는지 확인하고 도메인 연결하니까 로그인 문제가 해결됐습니다.
감사합니다!





네 use 디비명 후 show tables를 했습니다.
Database changed
mysql> show tables;
Empty set (0.00 sec)
그럼 워크밴치에 개발환경에서 넣었던 데이터들이 남아있는건 정상인거죠?