반응형
저는 내부 개발 서버에서 작업하고 있으며 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
반응형
'MySql' 카테고리의 다른 글
MySQL PHP는 선택 상자에서 선택한 값을 얻습니까? (0) | 2020.12.24 |
---|---|
MySQL 권한 부여 옵션이있는 사용자는 사용자 생성 권한을 부여 할 수 없습니다. (0) | 2020.12.24 |
MySQL PHP에서 SQL 변수를 바인딩하는 방법은 무엇입니까? (0) | 2020.12.24 |
MySQL Null이 아닌 경우 필드 업데이트 (0) | 2020.12.24 |
MySQL com.mysql.jdbc.Driver 설치 방법 "클래스 이름이 com.mysql.jdbc.Driver 인 드라이버를 찾을 수 없습니다"? (0) | 2020.12.23 |
댓글