main 서버 dump파일 test서버 적용 후 the user specified as a definer does not exist 오류

HyunKyu Lee·2023년 11월 23일
0

42gg

목록 보기
2/4

문제상황


  • main서버 db를 dump하여 테스트 서버에 옮긴 후 특정 api에서 the user specified as a definer does not exist 오류 발생
  • game 리스트를 조회하는 api에서 database 접근 시 다음과 같은 오류가 발생함

문제원인


  • 처음에 test서버의 user는 42gg-test인데 자꾸 메인서버 유저인 42gg가 존재하지 않는다는 오류가 떠서 yml파일이 메인서버 것이 적용된 것이 아닌가 확인했다.

  • 하지만 문제는 main서버에서 test서버로 db데이터를 dump해서 옮겨오는 과정에서 발생했다.

  • main서버 에서 dump 받아온 table에는 문제가 없었지만 view에 문제가 있었음.

  • 확인해보면 DEFINER가 42gg로 되어있어 이 view를 조회하는 api에서 해당 유저가 없다는 오류가 발생한 것임. (test는 host user가 42gg-test이기 때문에 42gg라는 유저는 존재하지 않음)

해결방법


  • 해당 view의 DEFINER를 42gg-test로 변경해주면 된다.
ALTER DEFINER=`42gg-test`@`172.26.0.13` VIEW `v_teamuser` AS [...]

[…] 이 부분에는 원래 VIEW의 SELECT 문을 넣어주면 된다.

profile
backend developer

0개의 댓글