MySQL -> MariaDBに変更した際の作業メモ

ツイッターのAPI使っていろいろやってるんだけど、本文取り込む際に通常のUTF8だと4byteの絵文字等でエラーになるっぽかったので、utf8mb4へ変更。
その際、当サーバの利用していたMySQLのバージョン古すぎて該当のオプション利用できなかったのでMariaDBを導入。
事前にバックアップはとって置いたけど、結果的にはそのままDB引き継げてたので利用してない。

インストールは公式参照してyum経由で実施

https://downloads.mariadb.org/mariadb/repositories/

MySQL古すぎて?自動削除うまくできなかったので手動(rpm -e)で削除した。
(警告表示でコマンド表示される)

mysql起動 -> 起動しない

my.cnfでログの場所を調整(パーミッションでログ書けなくて起動しなかった)
その後起動 -> mysql_secure_installation実行
(DB引き継げてたから多分必要なかった気はする)

サーバ側のキャラクタセットを変更

character-set-server = utf8mb4

/usr/share/mysql/charsets/Index.xml を編集
charset name="utf8" の部分を丸々コピー、utf8mb4を作成

RailsのMySQL用ライブラリを再ビルド(前のクライアントバージョンでビルドしたからかそのままだとエラーはいた)
vender/bundle配下削除 -> bundle install
これでRails(unicorn)も起動できた

あとはmysqlのコンソールから必要なカラムのみutf8mb4に変更
(DBのデフォルトキャラクタセット等変更してない。必要な所だけ変更した。)

ALTER TABLE (テーブル名) modify (カラム名) text character set utf8mb4 COLLATE utf8mb4_general_ci;

以上

リンク

メール
ツイッター:@chapan_G

現在応援中!