db/mysql
Access denied; SUPER privilege(s) for this operation
C/H
2018. 4. 23. 11:49
- Access denied; you need (at least one of) the SUPER privilege(s) for this operation
- How to grant super privilege to the user?
gunzip < back.20180423.data.gz | mysql -uusername -p -f datbasename
Enter Password:
ERROR 1227 (42000) at line 279: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
failure cause 원인 파악?
- working server에서 mysqldump를 이용 원격지 db 백업
- 원격백업이 가능하기 위해서는
username@%
권한이 필요함. - 백업된 log 파일에는
DEFINER='username'@'%'
형태로 사용자@호스트 정보가 적용됨 - 이를 원격지 백업 db에 사용할 경우 문제가 없지만, 로컬백업 db에 밀어넣으면
SUPER privilege(s)
에러 발생 username@%
와username@localhost
host권한이 다름.
How to grant super privilege to the user? 에서는 이를 해결하기 위해서 mysql.user.Super_priv
값을 'Y'
로 변경하면 해결되지만 권한남용(?)에 대해서 우려를 표현함.
Solutions 또 다른 대응법은
- 백업 파일에서
DEFINER='username'@'%'
>>>DEFINER='username'@'localhost'
변경후 복원한다. -h
옵션으로 로컬호스트에 연결된 도메인으로 설정하면usename@%
를 사용한다.- db서버에서 mysqldump로 작업후 그 결과물을 백업db 서버에 download받은 후 복원한다.
반응형