DBAtlas · データベース運用アトラス

MySQL シングルサーバーのインストール (本番対応)

MySQLレベル: 初級所要時間: 30–45 分

MySQL 8.4 LTS (または 8.0) のサーバー 1 台を公式リポジトリからゼロから本番対応でインストールします。データ、binlog、ログ用の個別ディレクトリ、RAM/CPU/ディスク種別から算出した my.cnf、GTID と binlog の保持期間、スロークエリログ、SELinux/AppArmor、root アクセスの制限、アプリケーションユーザーまでを扱います。最終的に、検証済みで最初のバックアップも取得済みのインスタンスが得られます。レプリケーション、InnoDB Cluster、バックアップ、セキュリティの各ガイドはこのインストールを前提にしています。

構成: サーバー 1 台

開始前の確認

  • サーバーがサポート対象の OS で動作し、最新の状態であること。タイムゾーンと NTP (chrony) が正しいこと。
  • RAM と CPU がフォームの値と一致していること (my.cnf はこれらから算出されます: バッファプール … MB)。
  • …、…、… 用のディスク/LV がマウントされ (fstab で永続化)、ファイルシステムが XFS または ext4 で、空き容量が十分にあること。binlog は … 日間保持されるため、1 日の書き込み量の … 倍以上の容量を確保してください。
  • ホスト名 … が設定され、自身の IP に名前解決できること。アプリケーションネットワーク (…) に到達できること。
  • サーバーから repo.mysql.com に HTTPS で接続できるか、社内ミラーが設定されていること。
  • ポート … (および X Protocol のポート …) が空いていること。
  • サーバーに MariaDB や OS 付属の MySQL がインストールされていないこと (公式の MySQL と競合します)。
  • アプリケーションユーザーのパスワードが用意されていること… (RHEL 系では validate_password がデフォルトで有効: 8 文字以上、大文字/小文字、数字、特殊文字を含む)…。パスワードはインストール中に画面に表示せずに入力を求められます。' と \ を含めないでください。
  • root または sudo 権限でログインしていること。メンテナンスウィンドウとフォールバック計画 (サーバーのスナップショット) が用意されていること。

ガイドのフェーズ

  • OS の準備 — ホスト名とシステムの更新 · カーネルパラメータ (sysctl) · sysctl 設定を適用する · Transparent Huge Pages を無効にする
  • MySQL ソフトウェアのインストール — OS の MySQL モジュールを無効にする · 公式 MySQL リポジトリを追加する · MySQL サーバーソフトウェアをインストールする · 公式 MySQL APT リポジトリを定義する · MySQL サーバーソフトウェアをインストールする
  • ディレクトリと構成 — ディレクトリを作成して所有者を設定する · my.cnf を書き込む · オープンファイル数の上限を引き上げる (systemd) · systemd の構成を再読み込みする · SELinux ラベルを定義する · 新しいディレクトリを AppArmor に登録する …
  • サービスの起動 — サービスを有効化して起動する · 古いデフォルトのデータディレクトリを片付ける
  • root アクセスとセキュリティ — 一時 root パスワードを確認する · root を auth_socket に切り替える · root パスワードを設定する · root のログイン情報を保存する (mysql_config_editor) · デフォルトのアカウントと test データベースを削除する · パスワードポリシーコンポーネント (validate_password)
  • アプリケーション用のデータベースとユーザー — データベースとアプリケーションユーザーを作成する
  • ネットワークアクセス — ファイアウォールでポートを開放する
  • 検証 — 設定が適用されていることを確認する · エラーログを確認する · リモート接続テスト
  • インストール後の作業 — 最初の論理バックアップを取得する · 監視を接続する
環境に合わせた手順プランを開く →