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.
8.4 で変わること
アップグレードはインプレースです。8.0 のデータディレクトリはそのままに 8.4 のバイナリをインストールすると、サーバーは初回起動時にデータディクショナリを自身でアップグレードします。ほとんどのスキーマとクエリはそのまま引き継がれます。実際に問題になる変更は次のとおりです。ステップ 1: 古い認証プラグインを使うアカウントを見つける
アップグレードの前に、まだmysql_native_password を使っているすべてのアカウントを一覧にします。
caching_sha2_password に移行し、アプリケーションが保存しているパスワードを更新します。
--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 を実行し、出力を確認します。
AUTO_INCREMENT と、非標準の外部キー制約には特に注意してください。どちらも 8.4 で削除されました。
ステップ 4: バックアップしてから、インプレースでアップグレードする
8.4 から 8.0 へのサポートされたインプレースのダウングレードはありません。データディクショナリがアップグレードされた後は、戻る唯一の方法はバックアップの復元です。したがって、バックアップは形式的なものではありません。VillageSQL の視点
VillageSQL Server は MySQL 8.4 のドロップイン代替です。8.4 に移行すれば、スタック内で MySQL 8.4 と動くものはすべて VillageSQL とも動き、後で切り替えることは、同じデータディレクトリ上でのマイナーバージョンの交換と機能的に同じです。拡張機能フレームワークに関心があるなら、どのみち行う 8.4 へのアップグレードがその入り口です。その手順は VillageSQL へのアップグレードを参照してください。関連項目
- VillageSQL へのアップグレード — 8.4 に移行した後のドロップインの切り替え
- バックアップ戦略 — このアップグレードが依存するバックアップ
- よくある MySQL のエラー — 失敗したアップグレードが生むエラーの読み解き