記錄一下,以後肯定還會再用到。
因為 MySQL 預設的 max_allowed_packet 設定是 1M,對有些應用來說可能太小了。如果是自己架 MySQL 改 /etc/mysql/my.cnf 就是了,不過租用 Amazon RDS 就沒有這種事了。又它的 web console 也沒有提供介面可以改設定(parameters)除了可以用 AWS 的 web console 介面來改,也可以透過 Amazon RDS Command Line Toolkit 呼叫 API 來改,步驟如下:
-
參考 credential-file-path.template,編輯 credentials.txt 把 AWSAccessKeyId 和 AWSSecretKey 填上去
-
設定環境變數,例如:
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
-
chmod +x ${AWS_RDS_HOME}/bin/*
-
rds-create-db-parameter-group <自定的parameters群組名稱> -d "群組描述" -f MySQL5.5
新增一個群組來放參數 -
rds-modify-db-parameter-group <自定的parameters的群組名稱> -p "name=max_allowed_packet,value=2097152,method=immediate"
把參數放進你自定的群組裡 (這裡單位只能用bytes) -
rds-modify-db-instance <DB Instance Name> -g <自定的parameters群組名稱>
把群組綁到指定的 DB 上 -
這個設定似乎不需要 reboot 就生效了。要重開的話,在 web console 也可以 reboot。
完整的文件在 AWS Command Line Reference,例如
rds-describe-db-instances <DB Instance Name> 看這個 DB 套用了什麼 PARAMGRP 群組
rds-describe-db-parameters <自定的parameters的群組名稱> 看這個群組的 parameters
RDS 介面中有地方可以直接更改喔。http://dl.dropbox.com/u/55246495/rds-param.jpg
對耶,我眼殘… XD