LoginSignup
0
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-03-19

概要

特定のログを埋め込んで抽出してSQL化して適当なDBとテーブル作ってSQL流してクエリで解析できるように対応を進めていたところ、大量のログ&sqlファイル1つ数百MBという結果になり、ローカルでは対応厳しいためRDSに対応していたところ色々とハマったまとめです。

環境

  • RDS - MySQL Community 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の値を変更&保存。
パラメータグループの変更は、データベースを起動していないと変更できないようで、変更後は再起動が必要。

スクリーンショット 2020-03-19 16.58.34.png

スクリーンショット 2020-03-19 17.40.54.png

再起動後、max_allowed_packetの値が変わっていることを確認。

mysql> show variables;

(略)

| max_allowed_packet                                     | 512000

(略)

参考記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1