修改 AWS RDS 資料庫設定,以 max_allowed_packet 為例

記錄一下,以後肯定還會再用到。

因為 MySQL 預設的 max_allowed_packet 設定是 1M,對有些應用來說可能太小了。如果是自己架 MySQL 改 /etc/mysql/my.cnf 就是了,不過租用 Amazon RDS 就沒有這種事了。又它的 web console 也沒有提供介面可以改設定(parameters)除了可以用 AWS 的 web console 介面來改,也可以透過 Amazon RDS Command Line Toolkit 呼叫 API 來改,步驟如下:

  1. 下載 Amazon RDS Command Line Toolkit

  2. 參考 credential-file-path.template,編輯 credentials.txt 把 AWSAccessKeyId 和 AWSSecretKey 填上去

  3. 設定環境變數,例如:
    export AWS_RDS_HOME=/Users/ihower/RDSCli-1.12.001
    export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
    export PATH=/Users/ihower/RDSCli-1.12.001/bin:$PATH
    export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credentials.txt
    export EC2_REGION=ap-northeast-1

  4. chmod +x ${AWS_RDS_HOME}/bin/*

  5. rds-create-db-parameter-group <自定的parameters群組名稱> -d "群組描述" -f MySQL5.5 新增一個群組來放參數

  6. rds-modify-db-parameter-group <自定的parameters的群組名稱> -p "name=max_allowed_packet,value=2097152,method=immediate" 把參數放進你自定的群組裡 (這裡單位只能用bytes)

  7. rds-modify-db-instance <DB Instance Name> -g <自定的parameters群組名稱> 把群組綁到指定的 DB 上

  8. 這個設定似乎不需要 reboot 就生效了。要重開的話,在 web console 也可以 reboot。

完整的文件在 AWS Command Line Reference,例如


rds-describe-db-instances <DB Instance Name> 看這個 DB 套用了什麼 PARAMGRP 群組
rds-describe-db-parameters <自定的parameters的群組名稱> 看這個群組的 parameters

2 thoughts on “修改 AWS RDS 資料庫設定,以 max_allowed_packet 為例

Leave a Reply