Blog3 の DB 移行(DigitalOcean から さくらのエンハンスドデータベース へ)

このブログをさくらのエンハンスドデータベースに移行する。さくらのエンハンスドデータベースは MariaDB なのだけど、Labs 機能なので無料なのが良い。どうせ多少落ちてもいいし、バックアップは mysqldump したものを暗号化してさくらのオブジェクトストレージにアップロードするようにしたのでデータが失われるようなこともあるまい。

DigitalOcean から mysqldump して mysql コマンドで さくらのクラウド の方に入れていく。

インポート先は MariaDB であることに留意が必要。

mysql> select version();
+---------------------+
| version()           |
+---------------------+
| 10.11.2-MariaDB-log |
+---------------------+
1 row in set (0.03 sec)
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER, BINLOG ADMIN privilege(s) for this operation

というエラーが出た。

GTID 関連の権限が足りていないようなので権限を調整する。 mysqldump に --set-gtid-purged=OFF をつけることで解決する。

See https://dev.mysql.com/doc/refman/8.0/en/replication-multi-source-provision-replica.html

次は以下のようなエラーが出てきた。

ERROR 1128 (HY000) at line 25: Function 'ngram' is not defined

FTS 周りの問題が出てきたようだ。

perl -pe 's/WITH PARSER `ngram`//;s/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' ~/Documents/20241228-blogbackup.sql

とかして削除すれば良さそう。

ということで、移行完了。

コンピューティングノードは DigitalOcean のシンガポールのデータセンターなので接続が遅い。 ので、コンピューティングノードも国内に移動させたい。