여씨의 개발이야기

[MySQL] mysqldump: Got error: 1356: View 'database.view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when using LOCK TABLES 본문

💾 Database

[MySQL] mysqldump: Got error: 1356: View 'database.view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them when using LOCK TABLES

yeossi 2022. 1. 28. 10:45

📢 원인을 알아보자

덤프를 하려는 도중에 참조하는 놈이 invalid하다는 에러가 떴다.
이럴 땐 무조건 view의 ddl을 확인해서 수정되거나 사라진 table 또는 column 또는 function 등이 있는 지 확인해야한다.

 

😮 해결 방법

필자의 경우에는 참조하고 있는 테이블 중 하나가 데이터베이스 이름이 바뀌어서 나는 오류였다. 
view의 ddl을 복사해서 replace를 하면 해결된다.

CREATE OR REPLACE
ALGORITHM = UNDEFINED VIEW `데이터베이스명`.`뷰명` AS
select
...
from
...
union
select
...
from
...
where
...
Comments