VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
前提条件
- VillageSQL のバイナリ: VillageSQL のバイナリ(ソースからコンパイルしたもの、またはダウンロードしたもの)を用意してください。
- MySQL のバージョン: VillageSQL は MySQL 8.4 LTS に基づいています。MySQL 8.4 からのアップグレードがサポートされる経路です。
ステップ 1: データのバックアップ
システムファイルやサービスに触れる前に、データベースの完全なバックアップを作成します。オプション A: 論理バックアップ(mysqldump)
すべてのデータベースの SQL ダンプを作成します。これが最も安全で移植性の高い方法です。オプション B: 物理バックアップ(データディレクトリ)
データセットが大きい場合は、サーバーを停止してデータディレクトリをコピーします。ステップ 2: MySQL サーバーの停止
データファイルのロックを解放するために、現在実行中の MySQL サーバーインスタンスを停止します。 Systemd を使う場合(Linux):ステップ 3: バイナリの置き換え
アップグレードの中核は、実行可能ファイル(mysqld、mysql など)をアップストリームの MySQL 版から VillageSQL 版に切り替えることです。
方法 A: インストールディレクトリの入れ替え(推奨)
MySQL を tarball でインストールした場合(例:/usr/local/mysql へ)、最もきれいな方法は、VillageSQL をその隣にインストールしてシンボリックリンクを切り替えることです。
- VillageSQL を展開/インストールして、新しいディレクトリ(例:
/usr/local/villagesql-8.4)に置きます。 - シンボリックリンクを更新します。
- 権限を確認します。データベースを実行するユーザー(通常は
mysql)が新しいバイナリの実行権限を持っていることを確認します。
方法 B: バイナリの上書き
VillageSQL をソースからコンパイルし、システムのインストール(例:/usr/bin または /usr/local/bin)を上書きしたい場合は次のようにします。
MySQL をパッケージマネージャー(
apt、yum)でインストールした場合、バイナリを手動で上書きするのは危険です。パッケージマネージャーが更新時にそれらを元に戻してしまう可能性があるからです。mysql-server パッケージをアンインストールする(データファイルは残します!)か、利用できるなら update-alternatives を使うことをお勧めします。ステップ 4: 設定の確認
設定ファイル(通常は/etc/my.cnf または /etc/mysql/my.cnf)が既存のデータディレクトリを指していることを確認します。
my.cnf は変更なしで動作するはずです。
ステップ 5: VillageSQL の起動
サービスマネージャーを使うか、手動でサーバーを起動します。 Systemd を使う場合:自動アップグレード
起動時に、VillageSQL はデータファイルが古いバージョンのものかどうかを自動的に検出し、システムテーブルに必要なアップグレードを実行します。 エラーログ(通常は/var/log/mysql/error.log または datadir の中)を確認して、アップグレードが正常に完了したことを確認します。次の行を探してください。
[System] [MY-013381] [Server] Server upgrade from '...' to '...' completed.
ステップ 6: インストールの確認
サーバーに接続し、VillageSQL が実行されていることを確認します。INSTALL EXTENSION のような VillageSQL 独自の機能を使い始められます。
トラブルシューティング
- “Data Dictionary Upgrade Failed”: サーバーが起動を拒否する場合、ダウングレード(例: 8.4 から 8.0)を試みているか、データファイルが破損している可能性があります。エラーログを確認してください。
- 権限エラー:
mysqlOS ユーザーがdatadirと新しい VillageSQL インストールディレクトリを所有していることを確認してください。
関連項目
- MySQL のスキーマ移行 — アップグレード後に安全な DDL 変更を実行する
- MySQL のバックアップ戦略 — アップグレード前にバックアップする
- Docker 上の MySQL — 代わりにコンテナで MySQL または VillageSQL を実行する
- サポート終了後の MySQL 8.0 から 8.4 へのアップグレード — まだ 8.0 の場合は、先に 8.4 に上げる