Open2

MySQL Tips

DaiDai

SQL

GROUP_CONCATの制限緩和

デフォルトだと1024文字列という制限がある。
1GBまで制限を緩和する場合はmy.cnfの[mysqld]で下記ようにする。

group_concat_max_len=1073741824

ちなみに、JSON型カラムの上限は1GB。

参考
https://qiita.com/nwsoyogi/items/196cb92f79c6f01871e0
https://stackoverflow.com/questions/26553823/what-is-the-maximum-allowance-for-group-concat-max-len-in-mysql

max_allowed_packetの制限緩和

SQL文が大きすぎて、DBとの通信量が大きくなると、下記のようなエラーが発生する。

"message":"ER_NET_PACKET_TOO_LARGE: Got a packet bigger than 'max_allowed_packet' bytes"
"code":"ER_NET_PACKET_TOO_LARGE"
"errno":1153,"sqlMessage":"Got a packet bigger than 'max_allowed_packet' bytes"
"sqlState":"08S01"

デフォルトはv5.6.6以上だと4MB。上限は1GB。
100MBまで制限を緩和する場合はmy.cnfの[mysqld]で下記のようにする。

max_allowed_packet=100MB

参考
https://dzone.com/articles/maxallowedpacket-and-binary#:~:text=In a nutshell%2C max_allowed_packet is,a maximum size of 1GB.

DaiDai

Aurora

DBクラスターパラメーターグループとDBパラメータグループ

DBクラスターパラメーターグループだと、Aurora DB クラスター内のすべての DB インスタンスに適用されるので、DBパラメータグループもどっちも変えておけば問題ないと思う。

適用タイプが動的(Dynamic)ならDB再起動なしで適用される。静的(Static)なら手動で再起動をしないと適用されない。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html

読み取り権限のユーザーを作成

セッションマネジャーで踏み台サーバーにアクセスし、下記コマンドを実行。

$ sudo su ec2-user
$ mysql -h <MYSQL_HOST> -u admin -p
mysql > GRANT SELECT ON {DB名}.* TO 'reader'@'%' identified by '{パスワード}';