DEFINER 변경 - #1449 - The user specified as a definer ('root'@'%') does not exist

이기현·2022년 2월 11일
0

MariaDB

목록 보기
20/29

DB를 import 해올 때, 원래 DB에서 해당 객체를 생성한 계정(DEFINER)이 Import해온 DB에서는 계정이 존재하지 않을 때 발생하는 문제이다.

해결 방법으로는

  1. DEFINER 변경
  2. 존재하지 않는 해당 계정을 IMPORT한 DB에서도 생성

2번 방법은 내 상황에서는 root@'%' 계정은 보안상 취약하기 때문에 생성할수는 없다.

따라서 1번 방법으로 조치하였다.

  • DEFINER 변경하는 쿼리 생성 구문

SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ",
table_name, " AS ", view_definition, ";")
FROM information_schema.views
WHERE table_schema='your-database-name';

  • DEFINER 변경

use mtms
위에서 생성한 쿼리 수행

  • 조회 확인

select * from mtms.seatcnt_timetable_view stv limit 100

profile
실력을 쌓아가는 하루하루

0개의 댓글