Pocket

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


■Terraform

  • do_db.tf

  • do_firewall.tf

まずはManaged DBのTerraform化と専用のファイアウォールを追加しました。

  • apply


 ■DigitalOcean/Database

    • 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もチューニングし直します。wikiも移行完了しました。

    Pocket


    adachin

    1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

    0件のコメント

    コメントを残す

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