GCP MySQL 인스턴스 내에서 mysql 데이터베이스를 복원할 수 없습니다.

GCP MySQL 인스턴스 내에서 mysql 데이터베이스를 복원할 수 없습니다.

GCP 저장소 내의 SQL 파일에서 MySQL 데이터베이스를 복원하는 데 지쳤습니다. 단계는 데이터베이스 백업 파일을 GCP 저장소에 업로드한 다음 이 SQL 파일을 GCP MySQL 인스턴스 내의 지정된 데이터베이스로 가져오는 것이었습니다. 시간이 좀 걸렸습니다. 예외가 발생했습니다.

 Import error: exit status 1 ERROR 1227 (42000) at line 10871: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

그런 다음 루트나 다른 사용자에게 최고 권한을 부여하려고 했지만 어쨌든 작동하지 않았습니다. 하지만 최고 권한을 부여할 수 없었습니다. 이 문제를 해결하는 방법을 모르겠습니다. 도움이 많이 될 것입니다. 인정받은

업데이트(2020년 1월 17일): 내가 해결한 문제

예외가 발생한 줄을 찾으려고 노력했습니다.

$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p example.sql

그리고 나는 찾았다

/*!50013 정의자= root@ localhostSQL 보안 정의자 */

그런 다음 이 명령을 사용하여 문제가 있는 명령문을 제거했습니다.

고양이 example.sql | sed -e 's/DEFINER= root@ localhost//g' > example-CLEANED.sql

그럼 됐어

답변1

권한 이 CURRENT_USER있어야 SUPER하지만 현재는 DEFINER그렇지 않습니다. mysqldump --skip-definer(최소한의 노력이 될 것입니다) 로 다시 덤프하십시오 . 이것이 옵션이 아니어야 하는 경우 덤프를 편집하여 을 제거하거나 DEFINER해당 항목을 모두 로 바꾸십시오 CURRENT_USER. SET덤프의 특정 문은 결국 문제를 일으킬 수도 있습니다.

관련 정보