LINEで送る
Pocket

去年の夏頃にDigitalOceanがマネージドDBにMySQLが利用できるようになったので、今回このブログサーバーで動いているDBを移行してみました。(月$15安い) MySQL5.7から8にもバージョンアップしたので移行手順をブログします。


■Terraform

  • do_db.tf

まずはTerraformで管理しているのでクラスタ用に作成します。

  • apply


 ■DigitalOcean/Database

  • Restrict inbound connections

対象のサーバーのみにしかDBへアクセスできるないようにするため、ブログサーバーを指定します。

  • Connect to this database cluster

接続情報ですがプライベートネットワークを選択し、メモります。 Flags を選択するとmysqlコマンドでワンライナーが表示されます。サーバーでペーストするだけでログインできるので楽です。

  •  Insights

ここではDBのリソースを可視化してくれています。slackでアラート通知も設定できるのでやりましょう。

  • Logs & Queries

DBのログなどの確認は上記のように閲覧可能となります。CloudWatch Logsぽい。

  • Users & Databases

DBやユーザはUIから追加可能なので、今回はwordpress用に作成しました。

  • Backup

バックアップは7日間無料でしてくれています。これは良い!

  • Global SQL mode

https://www.digitalocean.com/community/questions/which-sql-mode-values-to-use-for-wordpress

wordpressは STRICT_TRANS_TABLES を追加しないと以下のようにアーカイブで of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column が出てしまうので忘れずに。


 ■DB dump & restore

  • connection

ちゃんと接続できているのでOK。

  • パスワード認証方式を変える

上記のようにMySQL8ではパスワードの認証方式が caching_sha2_password に変わっているのでそのままだと データベース接続エラー になってしまうので、 mysql_native_password に変更します。

  • dump & restore

  • fix wp-config.php

Done!!

  • remove mysql-server


■まとめ

MySQL8にちょいハマりましたが、知見高まったので良き!メモリーも余裕出てきたので次はPHPバージョンアップしよう。ちなみに7.2を使っているので今年の11月にサポート切れてしまう!!php-fpmもチューニングし直します。

LINEで送る
Pocket


adachin

1989年生まれのLancers SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。現在はサービスの信頼性向上、可用性、レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、グループ会社のインフラをECS/Fargateへ移行、CakePHP4での管理画面作成、メンター、分析基盤の運用を担当している。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください