728x90
반응형
🛑 에러
- error 1227 (42000) at line 18: access denied; you need (at least one of) the super, system_variables_admin or session_variables_admin privilege(s) for this operation workbench
⚠️ 원인
- 이 오류는 import/restore 하려는 계정에 super, system_variables_admin 또는 session_variables_admin 권한이 없어 발생하는 에러로MySQL 서버가 사용자가 아닌 다른 DEFINER가 지정된 sql 파일을 허용하지 않기 때문입니다.
🛠️ 해결 방안
1. root 계정으로 Import (권장)
- MySQL에서는 일반 계정이 SUPER, SYSTEM_VARIABLES_ADMIN, SESSION_VARIABLES_ADMIN 등의 권한 없이 DB Import를 수행하는 것이 보안 정책상 허용되지 않습니다.
따라서, root 또는 권한이 충분한 계정을 사용하여 Import하는 것이 가장 안전한 방법입니다.
2. 권한 부여
- import/restore 하려는 계정에 root 권한을 부여합니다.
# Docker 컨테이너 접속
docker exec -it <mysql-container-name> bash
# MySQL 접속 (root 계정)
mysql -u root -p
# 권한 확인
SHOW GRANTS FOR '[계정]'@'%';
# 필요 권한 부여
GRANT SYSTEM_VARIABLES_ADMIN, SESSION_VARIABLES_ADMIN ON *.* TO '[계정]'@'%'; FLUSH PRIVILEGES;
3. dump시 옵션 추가
- mysqldump 실행 시 --set-gtid-purged=OFF 옵션을 추가합니다. (원본 db)
mysqldump -u root -p --set-gtid-purged=OFF [your_database] > your_dump_file.sql
4. dump 파일 내 DEFINER 제거
- SQL 파일에 DEFINER='root@localhost'가 포함되어 있다면 dev 계정이 권한이 없어 import가 실패할 수 있습니다.
이 경우 sed 명령어를 사용하여 DEFINER를 제거합니다.
sed -i 's/DEFINER=[^ ]*//' your_dump_file.sql
또는 직접 your_dump_file.sql을 열어 DEFINER='...'을 제거합니다.
✅ 종합
위 방법 중 하나를 선택하여 Import를 진행하면 error 1227 (42000) 문제를 해결할 수 있습니다.
가장 권장되는 방법은 root 계정으로 Import하는 것이며,
불가능할 경우 권한을 부여하거나 dump 파일을 수정하는 방식을 사용할 수 있습니다.
반응형
'Solution' 카테고리의 다른 글
Oracle ORA-00923 : FROM 키워드가 필요한 위치에 없습니다 (0) | 2024.03.18 |
---|---|
[MAC] MAC OS 업데이트 이후 GIT invalid active developer path 오류 발생하는 경우 (0) | 2024.01.23 |
[알약삭제] 노트북 알약 랜섬웨어 차단 오류 해결하기 (0) | 2022.08.30 |
[ORACLE] ORA-22859: 열의 수정이 부적당합니다 (0) | 2022.06.29 |
[ORACLE] ORA-64203: 문자 집합 변환 후 대상 버퍼가 너무 작아 CLOB 데이터를 보유할 수 없습니다. (0) | 2022.05.31 |
댓글