The user specified as a definer ('root'@'%') does not exist 오류 해결

SoHEeeeeee·2023년 7월 31일
0

test DB를 내 local로 dump를 해온 뒤 프로젝트 data.xml에서 local로 연결을 바꿔주고 프로젝트를 돌렸다. 정상 작동했지만 로그인을 하려고 하자

The user specified as a definer ('사용자이름'@'%') does not exist

해당 오류가 발생되었다.

구글링을 해보니 데이터베이스에 대한 권한을 주지 않아 생기는 오류였고

grant all on *.* to '사용자이름'@'%' identified by 'password' with grant option;

위 코드를 실행하면 오류가 해결된다는 글을 보았다.


mysql 워크벤치에 들어가서 위 코드를 실행해 보았다.
하지만 나는 아래와 같은 오류를 다시 만났다.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'password' with grant option' at line 1


먼저 사용자를 생성한 후에 권한을 부여해야 하기 때문이었다.

mysql Command에 들어가서 아래 코드를 입력하여 정말로 사용자가 존재하는지 확인한다.

SELECT user FROM mysql.user; 

그리고 사용자를 생성해준다.

CREATE USER '생성하려는 사용자 이름'@'%' IDENTIFIED BY 'password';

이후 권한을 부여해 준다.

GRANT ALL PRIVILEGES ON *.* TO '생성하려는 사용자 이름'@'%' WITH GRANT OPTION;

그러면 최종적으로 사용자가 추가된 것을 확인할 수 있다.
나는 로그인이 정상적으로 되어 문제를 해결하였다.

profile
주니어 개발자

2개의 댓글

comment-user-thumbnail
2023년 7월 31일

글 잘 봤습니다.

1개의 답글