- 1. 概要
- 2. 選定
- 3. バックアップ
- 4. config
- 5. アップグレード
1. 概要
とうとう、この日がやってきました。
「MySQL 8.0」は、2026年12月31日でサポートが終了します。
おそらくは、「ports」からも消えてしまうと思われます。
いまのうちにアップグレードしないと、あせることになります。
2. 選定
でまぁ、何にアップグレードすべきかということになります。
2026年6月23日時点で。
ls -ld /usr/ports/databases/mysql*-server
drwxr-xr-x 3 root wheel 7 6月 9 07:12 /usr/ports/databases/mysql80-server
drwxr-xr-x 3 root wheel 7 6月 9 07:12 /usr/ports/databases/mysql84-server
drwxr-xr-x 3 root wheel 7 6月 9 07:12 /usr/ports/databases/mysql96-server
drwxr-xr-x 3 root wheel 7 6月 9 07:12 /usr/ports/databases/mysql97-server
という状況にありますが。
「Gemini」伍長に相談すると。
・MySQL 8.4 8.0 の直系後継 LTS (長期サポート 2029年まで)
・MySQL 9.6 開発・評価用、寿命が短い
・MySQL 9.7 最新機能の評価用。8.4 からのジャンプアップは互換性リスクが高い
ちゅうことなので、「MySQL 9.x」は、安定していないので、「MySQL 8.4」へアップグレードすることにします。
3. バックアップ
バックアップ用のディレクトリを作成しておきます。
sudo mkdir -pv /var/mybackup
cd /var/mybackup
論理バックアップ。
sudo mysqldump -u root -p --all-databases --routines --triggers --events > mysqldump.sql
「MySQL 5.7」から「MySQL 8.0」への移行時は、システムテーブルの構造にそこまで破壊的な変更があったので、複雑なオプションが必要でしたが。
「MySQL 8.0」「MySQL 8.4」間はそこまでひどくないようなので、比較的簡単なオプションでよいようです。
オプションは、下記のものを確実にエクスポートするためのオプションです。
・--routines ストアドプロシージャ
・--triggers トリガー
・--events イベントスケジュール
いったん「mysql-server」を停止。
sudo service mysql-server stop
物理バックアップ。
sudo tar -cvf /var/mybackup/mysql_physical_backup.tar /var/db/mysql /var/db/mysql_secure /var/db/mysql_tmpdir
4. config
「MySQL 8.4」のコンフィグレーションを設定しておきます。
cd /usr/ports/databases/mysql84-server
make config
デフォルトのままで。
cd /usr/ports/databases/mysql84-client
make config
こちらもデフォルトのままで。
5. アップグレード
「mysql-client」「mysql-server」の「ports」と「pkg」のバージョンを変更します。
pkg set -o databases/mysql80-client:databases/mysql84-client
y Enter で答えます。
pkg set -o databases/mysql80-server:databases/mysql84-server
y Enter で答えます。
portupgrade -f mysql80-server -o databases/mysql84-server
インストール。
cd /usr/ports/databases/mysql84-server
make NO_DIALOG=yes
make install
「mysql84-client」は、依存関係で、自動でインストールされます。
|