Open2
MySQL Tips
SQL
GROUP_CONCATの制限緩和
デフォルトだと1024文字列という制限がある。
1GBまで制限を緩和する場合はmy.cnf
の[mysqld]で下記ようにする。
group_concat_max_len=1073741824
ちなみに、JSON型カラムの上限は1GB。
参考
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
Aurora
DBクラスターパラメーターグループとDBパラメータグループ
DBクラスターパラメーターグループだと、Aurora DB クラスター内のすべての DB インスタンスに適用されるので、DBパラメータグループもどっちも変えておけば問題ないと思う。
適用タイプが動的(Dynamic)ならDB再起動なしで適用される。静的(Static)なら手動で再起動をしないと適用されない。
読み取り権限のユーザーを作成
セッションマネジャーで踏み台サーバーにアクセスし、下記コマンドを実行。
$ sudo su ec2-user
$ mysql -h <MYSQL_HOST> -u admin -p
mysql > GRANT SELECT ON {DB名}.* TO 'reader'@'%' identified by '{パスワード}';