db/mysql
Access denied; you need (at least one of) the SUPER privilege(s) for this operation
C/H
2018. 4. 2. 13:59
- Access denied; SUPER privilege(s) for this operation
- Access denied; you need (at least one of) the SUPER privilege(s) for this operation
- First attempt to migrate EC2 MySQL to Amazon RDS no going well - SUPER privileges
- 방금 aws MySQL rds 인스턴스를 만들고 나서, 로컬에 있는 DB…
- #1227 - Access denied; you need the SUPER privilege for this operation
RDS 인스턴스를 생성시 Master Username 을 개별 사용자(root 가 아닌)로 생성하면 백업파일중 SET DEIFNER=`root`부분에서 에러가 발생한다.
gunzip < backup.sql.gz | mysql -uusername -p databasename
ERROR 1227 (42000) at line 271: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
# SUPER 권한이 필요하다.
sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i backup.sql
# DEFINER=.. 문을 제거하거나 CURRENT_USER 문 값을 바꿔라.
# 혹은 동일안 사용자 이더라도 호스트에 따라서 같은 문제가 발생할 수 있다.
# 271 /*!50003 CREATE*/ /*!50017 DEFINER=`uasername`@`%`*/ /*!50003 TRIGGER `databasename`.`tablename_changeslog` AFTER UPDATE O N `tablename` FOR EACH ROW
# 271 /*!50003 CREATE*/ /*!50017 DEFINER=`uasername`@`localhost`*/ /*!50003 TRIGGER `databasename`.`tablename_changeslog` AFTER UPDATE O N `tablename` FOR EACH ROW
# username@% > username@localhost 로 변경해서 문제 해결
# 백업서버에서 원격지 마스터 DB서버의 자료를 백업해서 백업서버의 DB에 이전(mig)시 발생할 수 있다.
# sql 파일을 수정할 수 없거나 수정하기 싫다면 username@% 가 동작할 수 있도록 -h옵션으로 이전한다.
gunzip < backup.sql.gz | mysql -hdev.domain.com -uusername -p databasename
# 전체 권한이 있는 root로 하면 정상동작한다.
gunzip < backup.sql.gz | mysql -uroot -p databasename
# 이래저래 복원시 에러가 걸리다면 -f 옵션(force) 으로 에러가 나는 부분은 무시하고 계속 진행한다.
gunzip < backup.sql.gz | mysql -uusername -p -f databasename
반응형