>  기사  >  데이터 베이스  >  MySQL 덤프에서 DEFINER 절을 제거하는 방법은 무엇입니까?

MySQL 덤프에서 DEFINER 절을 제거하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 07:11:29726검색

How to Remove DEFINER Clauses from MySQL Dumps?

MySQL 덤프에서 DEFINER 절 제거

MySQL 덤프에는 "DEFINER=root와 같은 CREATE VIEW 및 CREATE PROCEDURE 문 내에 DEFINER 절이 포함되는 경우가 많습니다. @localhost". 이러한 조항은 특정 시나리오에서 바람직하지 않을 수 있습니다. 이 문서에서는 MySQL 덤프 파일에서 이러한 절을 제거하는 방법을 살펴봅니다.

해결책:

  1. 텍스트 편집기 교체:

텍스트 편집기에서 덤프 파일을 열고 전역 검색 및 바꾸기를 수행합니다. "DEFINER=@"의 모든 인스턴스를 찾습니다. 빈 문자열로 바꿉니다.

  1. Perl 명령:

다음 명령으로 Perl을 사용하여 덤프 파일을 편집합니다.

perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql

이렇게 하면 덤프 파일에서 모든 DEFINER 절이 제거되고 ".bak" 확장자를 가진 백업이 생성됩니다.

  1. Sed Piping:

sed를 통해 mysqldump의 출력을 파이프하여 DEFINER 절을 제거합니다.

mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql

이 명령은 DEFINER 절이 제거된 "triggers_backup.sql"이라는 새 덤프 파일을 생성합니다.

위 내용은 MySQL 덤프에서 DEFINER 절을 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.