본문 바로가기
MySql

MySQL 트리거를 대량으로 변경하는 방법 DEFINER

by 베이스 공부 2020. 12. 24.
반응형

저는 내부 개발 서버에서 작업하고 있으며 MySQL 5.6.13 서버에서 MySQL 트리거를 생성했습니다. 이제 문제는 트리거 (총 약 200 개)가 내부 서버에서 DEFINER = root @ % 로 생성되었다는 것입니다.

이제 라이브 프로덕션 서버로 이동하고 싶습니다. 그러나 라이브 서버에서는 root 사용자에게이 액세스를 허용하지 않습니다. 따라서 DEFINER = root @ localhost 를 읽도록 모든 트리거를 대량으로 변경하려면 어떻게해야합니까?

 

해결 방법

 

한 가지 방법 :

1) 트리거 정의를 파일로 덤프

# mysqldump -uroot -p --triggers --add-drop-trigger --no-create-info \
      --no-data --no-create-db --skip-opt test > /tmp/triggers.sql

2) 선호하는 편집기에서 triggers.sql 파일을 열고 찾기 및 바꾸기 기능을 사용하여 DEFINER 를 변경합니다. 업데이트 된 파일을 저장합니다.

3) 파일에서 트리거 재생성

# mysql < triggers.sql

 

참조 페이지 https://stackoverflow.com/questions/18593746

 

 

반응형

댓글