AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

RDS の必要最低限なパラメータグループ ( MySQL 8 世代 ) 設定

MySQL 5.6/5.7 世代で絵文字とかハハパパあたりに苦しめられた人多い問題。

  • UTF8MB4 を利用する
  • innodb_file_format innodb_large_prefixON Barracuda が取り込まれたので、項目が存在しなくなった
  • フレームワークなどからのアクセスで時刻補正されるとは限らないので、DB 内の時間も Tokyo にする
    • ActiveRecord 経由で操作してて、 lib/task くコ:彡のタスクを実行するとたまに死ぬので、面倒を見てあげようネ!

f:id:donbulinux:20191018171354p:plain
パラメータグループのプレビュー

innodb_per_table

5.6/5.7 でも書いたけどデフォルト 1 だったので変更しなくてオッケー!

f:id:donbulinux:20191018171814p:plain
innodb_per_table

続きを読む

DNS キャッシュ切替確認とは

伝播っていうな、とバズったのも過去の話よ、という感じで。 DNS 伝播ってなんか言いやすいんすよね……。

sys-guard.com

Route53 に NS うつして待機してたんだけど全然反映されねーな? と思ってたんだけど、作業した人からは「dig に 8.8.8.8 指定したらちゃんと指示どおりのレコード返却されるでしょ!」とずーっと言われ、「いやあのさぁ」って顔になったので。

RDS の必要最低限なパラメータグループ ( MySQL 5.6/5.7 世代 ) 設定

いーっつも忘れて過去の手順書を確認するので、ここに記載する! 新しいパラメータグループ作った後に最低限設定するのは以下。

  • UTF8MB4 を利用する
    • InnoDB のカラム幅を 3072 だか 3074 いっぱいまで拡張する
  • フレームワークなどからのアクセスで時刻補正されるとは限らないので、DB 内の時間も Tokyo にする
  • per_table は標準で 1 だった。

f:id:donbulinux:20190917003634p:plain

設定する値について

だいぶわかりやすかったのはここかなあ、公式読むのが一番だけど、探しづらいんよね。

docs.moodle.org

続きを読む

ファイルの分割をしたい

特に access_log など

sed -n '開始行,終了行p' ${FILE}

weekly などで access_log をローテートしていると、なんらかの原因でアクセス過剰になった際、ログが肥大化して解析時に時間がかかりがちですね。 ということで指定行数で割ります。

ワイはただヒストリに消えてほしくなかっただけなんや

.bash_history を飛ばした事に気づいて、 shared history っぽい仕組みを入れたら BASH_IT が使えなくなったので zsh + Prezto に引っ越した。

.bash_profile に入れた shared history っぽい設定

http://iandeth.dyndns.org/mt/ian/archives/000651.html

function share_history {
    history -a
    history -c
    history -r
}
PROMPT_COMMAND='share_history'
shopt -u histappend

BASH_IT が使えなくなった設定調べるのもなー、というのと、 macOSX のデフォルトシェルが zsh に変わるとのことで、えいやっと移行することにしました。 ちなみに uninstall を叩いたら .bash_profile に記載した内容のうち、 BASH_IT の設定より下に書いていた内容が全て消えて、泣きながら timemachine から復旧しました、どんだけ古いバージョンを使っていたのか……(最近のはバックアップを作るっぽい)。

続きを読む