ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation

5393 단어 MySQLQueryRDS

개요



특정의 로그를 임베드해 추출해 SQL화해 적당한 DB와 테이블 만들어 SQL 흘려 쿼리로 해석할 수 있도록 대응을 진행하고 있었는데, 대량의 로그&sql파일 1개 수백MB라고 하는 결과가 되어, 로컬에서는 대응 엄격하기 때문에 RDS에 대응하고 있었는데 여러가지 빠진 정리입니다.

환경


  • RDS - MySQL 커뮤니티 5.6.40

  • 문제



    조사하면서 다음과 같이 작업을 진행하고 있었는데, 타이틀의 에러로 빠져 더욱 조사하면 AWS 콘솔상에서 작업하면 좋다고 알았다.
    $ mysql dev_analysis -h staging.xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 33066 -u gremito -p < ~/sqls/xxxxxxxxxx.sql
    Enter password: 
    ERROR 2006 (HY000) at line 24: MySQL server has gone away
    
    $ mysql -h staging.xxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 33066 -u gremito -p 
    
    mysql> show variables;
    
    (略)
    
    | max_allowed_packet                                     | 4194304
    
    (略)
    
    mysql> set global max_allowed_packet = 512000;
    ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
    
    mysql> show grants;
    +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Grants for gremito@%                                                                                                                                                                                                                                                                                                                                              |
    +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'bananaore'@'%' IDENTIFIED BY PASSWORD <secret> WITH GRANT OPTION |
    +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.01 sec)
    
    

    했던 일



    매개 변수 그룹에서 max_allowed_packet의 값을 변경하면 오류가 발생합니다. 원인은 기본값을 변경할 수 없으며 기본값에서 복사본을 만들 수도 없기 때문에 새로 매개 변수 그룹을 만들고 max_allowed_packet 값을 변경 & 저장.
    파라미터 그룹의 변경은, 데이터베이스를 기동하고 있지 않으면 변경할 수 없는 것 같고, 변경 후에는 재기동이 필요.





    재부팅 후 max_allowed_packet의 값이 변경되었는지 확인합니다.
    mysql> show variables;
    
    (略)
    
    | max_allowed_packet                                     | 512000
    
    (略)
    

    참고 기사


  • Amazon RDS for MySQL 파라미터를 설정하는 모범 사례입니다. 3부: 보안, 운영 관리 및 연결 시간 초과와 관련된 매개변수
  • 【MySQL】AWA RDS로 max_allowed_packet를 변경하는 것은 콘솔에서 실시한다 - @isao_e_dev
  • MySQL 오류 및 해결 방법 요약 - @RyutaKojima
  • RDS 매개변수 변경 방법(AWS) - @takahashi-kazuki
  • 좋은 웹페이지 즐겨찾기