メインコンテンツへスキップ

VillageSQL is a drop-in replacement for MySQL with extensions.

All examples on this page work on VillageSQL. Install Now →
This guide is AI-generated content. We tested every command in it against a live server before publishing, but your mileage may vary. Do your own extensive testing before you run any of this against a production system.
MySQL 8.0 は 2026 年 4 月 30 日にサポートを終了し、セキュリティパッチを受け取らなくなりました。アップグレード先は MySQL 8.4 LTS で、プレミアサポートはおよそ 2029 年 4 月まで、延長サポートは 2032 年 4 月までです。Oracle は 8.0 から 8.4 への経路を円滑になるよう設計しましたが、2 つの変更が実際のシステムを壊します。デフォルトの認証プラグインと、削除された設定変数です。このガイドではその両方と、開始前に実行する確認を扱います。

8.4 で変わること

アップグレードはインプレースです。8.0 のデータディレクトリはそのままに 8.4 のバイナリをインストールすると、サーバーは初回起動時にデータディクショナリを自身でアップグレードします。ほとんどのスキーマとクエリはそのまま引き継がれます。実際に問題になる変更は次のとおりです。

ステップ 1: 古い認証プラグインを使うアカウントを見つける

アップグレードの前に、まだ mysql_native_password を使っているすべてのアカウントを一覧にします。
それぞれを caching_sha2_password に移行し、アプリケーションが保存しているパスワードを更新します。
8.4 では、プラグインがロードされていないため、古いプラグインでのアカウント作成は失敗します。
アップグレードの前にアカウントを移行できない場合、8.4 は設定の --mysql-native-password=ON でプラグインを明示的にロードできます。これは目的地ではなく、つなぎとして扱ってください。このプラグインは非推奨で、削除が予定されています。

ステップ 2: 設定ファイルを整理する

MySQL 8.4 は、8.0 で非推奨だったシステム変数を削除します。my.cnf がそのいずれかを設定していると、8.4 サーバーは未知の変数のエラーで起動を拒否します。最もよくある 2 つは次のとおりです。
expire_logs_days を binlog_expire_logs_seconds に置き換え、default_authentication_plugin を削除します(8.4 での代替である authentication_policy は、すでにデフォルトで caching_sha2_password です)。設定ファイルから設定しているすべての変数を grep で探し、停止時間中ではなくアップグレードの前に、それぞれを 8.4 のリファレンスと照合します。

ステップ 3: 削除された構文がスキーマにないか確認する

すべてのデータベースに対して mysqlcheck を実行し、出力を確認します。
FLOAT または DOUBLE 列の AUTO_INCREMENT と、非標準の外部キー制約には特に注意してください。どちらも 8.4 で削除されました。

ステップ 4: バックアップしてから、インプレースでアップグレードする

8.4 から 8.0 へのサポートされたインプレースのダウングレードはありません。データディクショナリがアップグレードされた後は、戻る唯一の方法はバックアップの復元です。したがって、バックアップは形式的なものではありません。
次にアップグレードそのものです。8.0 サーバーを停止し、8.4 のバイナリをインストールし、同じデータディレクトリでサーバーを起動します。サーバーは初回起動時にアップグレード手順を自動で実行します。接続の準備ができたと報告するまで、エラーログを監視してください。結果を確認します。

VillageSQL の視点

VillageSQL Server は MySQL 8.4 のドロップイン代替です。8.4 に移行すれば、スタック内で MySQL 8.4 と動くものはすべて VillageSQL とも動き、後で切り替えることは、同じデータディレクトリ上でのマイナーバージョンの交換と機能的に同じです。拡張機能フレームワークに関心があるなら、どのみち行う 8.4 へのアップグレードがその入り口です。その手順は VillageSQL へのアップグレードを参照してください。

関連項目