수정 방법: 1. "update mysql.proc set Definer=..."를 사용하여 함수 정의자를 수정합니다. 2. "update mysql.EVENT set Definer=..."를 사용하여 이벤트 정의자를 수정합니다. .
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
1. 함수 및 프로시저의 정의자를 수정합니다.
select definer from mysql.proc; -- 函数、存储过程 update mysql.proc set definer=‘user@localhost‘; -- 如果有限定库或其它可以加上where条件
2. 이벤트의 정의자를 수정합니다.
select DEFINER from mysql.EVENT; -- 定时事件 update mysql.EVENT set definer=‘ user@localhost ‘;
3. 함수를 수정하면 몇 가지 문제가 발생합니다.
select DEFINER from information_schema.VIEWS; select concat("alter DEFINER=`user`@`localhost` SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER<>‘user@localhost‘;쿼리된 문을 다시 실행하면 됩니다.
4. 트리거 정의자 수정
현재 구체적이고 편리한 방법은 없습니다. HeidiSQL, sqlyog 등의 도구를 사용하여 하나씩 수정할 수 있습니다. 변경 프로세스 중에 다른 테이블의 변경으로 인해 테이블이 트리거되면 데이터 불일치가 발생할 수 있으므로 변경하기 전에 테이블을 잠글 필요가 있습니다.
추천 학습:mysql 비디오 튜토리얼
위 내용은 mysql에서 정의자를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!