#author("2018-06-07T08:26:45+00:00","default:kazuma","kazuma") [[RDS]] #author("2018-07-13T10:22:46+00:00","default:kazuma","kazuma") *概要 [#u162801c] RDSのgeneral_logに関するmemo *general_logを有効・無効にする [#z9c6a577] mysql cliコマンドではrootでも有効にできないので、AWSコンソールから実施する。 +パラメータグループ +対象のインスタンスのグループ +パラメータでgeneral_logの値を 1(有効), 0 (無効) にする general_logは大量に吐かれるので本番ではやらない。検証環境でも一時的に有効したら無効化しておく。 *general_logを削除する [#fb079331] TRUNCATE TABLE general_log ではrootでも権限により削除できない。~ 削除のためのストアドプロシージャが用意されているのでストアドから実行する。~ なお、一回実行したら general_log_backup へ退避されるので、完全に削除したい場合は rds_rotate_general_logというストアドを2回実行する。 ~ mysql> select count(*) from general_log; +----------+ | count(*) | +----------+ | 301603 | +----------+ 1 row in set (2.13 sec) mysql> call rds_rotate_general_log ; Query OK, 0 rows affected (0.02 sec) mysql> select count(*) from general_log; +----------+ | count(*) | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from general_log_backup; +----------+ | count(*) | +----------+ | 301603 | +----------+ 1 row in set (2.12 sec) mysql> call rds_rotate_general_log ; Query OK, 0 rows affected (0.05 sec) mysql> select count(*) from general_log_backup; +----------+ | count(*) | +----------+ | 0 | +----------+ 1 row in set (0.01 sec) *** rds_rotate_general_log の中身 [#oa7045f5] mysql> show create PROCEDURE rds_rotate_general_log\G *************************** 1. row *************************** Procedure: rds_rotate_general_log sql_mode: Create Procedure: CREATE DEFINER=`rdsadmin`@`localhost` PROCEDURE `rds_rotate_general_log`() READS SQL DATA DETERMINISTIC BEGIN DECLARE sql_logging BOOLEAN; select @@sql_log_bin into sql_logging; set @@sql_log_bin=off; TRUNCATE TABLE mysql.general_log_backup; RENAME TABLE mysql.general_log_backup TO mysql.general_log2; RENAME TABLE mysql.general_log TO mysql.general_log_backup, mysql.general_log2 TO mysql.general_log; set @@sql_log_bin=sql_logging; END character_set_client: utf8 collation_connection: utf8_general_ci Database Collation: latin1_swedish_ci 1 row in set (0.00 sec)