2.7. MariaDB 10.5 への移行
RHEL 8 では、バージョン 10.3、10.5、および 10.11 の MariaDB サーバーを利用できます。各バージョンは、それぞれ別のモジュールストリームによって提供されます。RHEL 9 では、MariaDB 10.5、MariaDB 10.11、および MySQL 8.0 を使用できます。
ここでは、RHEL 8 バージョンの MariaDB 10.3 から RHEL 9 バージョンの MariaDB 10.5. への移行を説明します。
2.7.1. MariaDB 10.3 と MariaDB 10.5 の主な相違点 リンクのコピーリンクがクリップボードにコピーされました!
MariaDB 10.3 と MariaDB 10.5 の間の重要な変更点には以下が含まれます。
-
MariaDB がデフォルトで
unix_socket認証プラグインを使用するようになりました。このプラグインにより、ユーザーがローカルの UNIX ソケットファイルを介して MariaDB に接続するときにオペレーティングシステムの認証情報を使用できるようになります。 -
MariaDBに、mariadb-*という名前のバイナリーと、mariadb-*バイナリーを参照するmysql*シンボリックリンクが追加されました。たとえば、mysqladmin、mysqlaccess、およびmysqlshowのシンボリックリンクは、mariadb-admin、mariadb-access、およびmariadb-showのバイナリーをそれぞれポイントします。 -
各ユーザーロールに合わせて、
SUPER特権が複数の特権に分割されました。その結果、一部のステートメントで必要な特権が変更されました。 -
並列のレプリケーションでは、
slave_parallel_modeはデフォルトでoptimisticに設定されるようになりました。 -
InnoDB ストレージエンジンで、変数のデフォルトが変更されました (
innodb_adaptive_hash_indexはOFFへ、innodb_checksum_algorithmはfull_crc32へ変更)。 MariaDB は、以前使用された
readlineライブラリーではなく、MariaDB コマンド履歴 (.mysql_historyファイル) を管理する基盤となるソフトウェアのlibedit実装を使用するようになりました。この変更は、.mysql_historyファイルを直接使用しているユーザーに影響します。.mysql_historyは MariaDB または MySQL アプリケーションによって管理されるファイルであるため、ユーザーは直接ファイルでは機能しないことに注意してください。人間が判読可能な外観は偶然です。注記セキュリティーを強化するために、履歴ファイルの維持を考慮することができます。コマンド履歴の記録を無効にするには、以下を実行します。
-
存在する場合は、
.mysql_historyファイルを削除します。 以下のいずれかの方法を使用します。
-
MYSQL_HISTFILE変数を/dev/nullに設定し、これをシェルの起動ファイルに追加します。 .mysql_historyファイルを/dev/nullへのシンボリックリンクに変更します。$ ln -s /dev/null $HOME/.mysql_history
-
-
存在する場合は、
MariaDB Galera クラスター がバージョン 4 にアップグレードされ、以下の主な変更点が加えられました。
- Galera は、サイズ制限なしのトランザクションの複製をサポートする、新しいストリーミングレプリケーション機能を追加します。ストリーミングレプリケーションの実行時に、クラスターは小さなフラグメントでトランザクションを複製します。
- Galera が Global Transaction ID (GTID) に完全に対応するようになりました。
-
/etc/my.cnf.d/galera.cnfファイルのwsrep_onオプションのデフォルト値が1から0に変更され、エンドユーザーが必要な追加オプションを設定せずにwsrepレプリケーションを開始できないようにします。
MariaDB 10.5 の PAM プラグインが次のように変更されました。
-
MariaDB 10.5 で、Pluggable Authentication Modules (PAM) プラグインの新しいバージョンが追加されました。PAM プラグインバージョン 2.0 は、個別の
setuid rootヘルパーバイナリーを使用して PAM 認証を実行します。これにより、MariaDB が追加の PAM モジュールを使用できるようになります。 -
ヘルパーバイナリーは、
mysqlグループのユーザーによってのみ実行できます。デフォルトでは、グループにはmysqlユーザーのみが含まれます。Red Hat では、このヘルパーユーティリティーを介してスロットルまたはログの記録をせずにパスワード推測攻撃を防ぐために、管理者がmysqlグループにユーザーをさらに追加しないことを推奨しています。 -
MariaDB 10.5 で、Pluggable Authentication Modules (PAM) プラグインとその関連ファイルが新しいパッケージ
mariadb-pamに移動しました。したがって、MariaDBに PAM 認証を使用しないシステムに、新しいsetuid rootバイナリーが導入されることはありません。 -
mariadb-pamパッケージには、両方の PAM プラグインバージョンが含まれています。バージョン 2.0 はデフォルトで、バージョン 1.0 はauth_pam_v1共有オブジェクトライブラリーとして利用できます。 -
MariaDB サーバーでは、
mariadb-pamパッケージはデフォルトでインストールされません。MariaDB 10.5 で PAM 認証プラグインを利用できるようにするには、mariadb-pamパッケージを手動でインストールします。
2.7.2. RHEL 8 バージョンの MariaDB 10.3 から、RHEL 9 バージョンの MariaDB 10.5 への移行 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、mariadb-upgrade ユーティリティーを使用して、MariaDB 10.3 から MariaDB 10.5 に移行する方法を説明します。
mariadb-upgrade ユーティリティーは、mariadb-server-utils サブパッケージにより提供され、mariadb-server パッケージの依存関係としてインストールされます。
前提条件
- アップグレードを実行する前に、MariaDB データベースに保存されている全データのバックアップを作成します。
手順
mariadb-serverパッケージが RHEL9 システムにインストールされていることを確認します。# dnf install mariadb-serverデータのコピー時に、
mariadbサービスがソースおよびターゲットのシステムで稼働していないことを確認します。# systemctl stop mariadb.service-
ソースの場所から RHEL 9 ターゲットシステムの
/var/lib/mysql/ディレクトリーにデータをコピーします。 ターゲットシステムでコピーされたファイルに適切なパーミッションと SELinux コンテキストを設定します。
# restorecon -vr /var/lib/mysqlmysql:mysqlが/var/lib/mysqlディレクトリー内のすべてのデータの所有者であることを確認してください。# chown -R mysql:mysql /var/lib/mysql-
/etc/my.cnf.d/にあるオプションファイルに MariaDB 10.5 に対して有効なオプションのみが含まれるように、設定を調整します。詳細は、MariaDB 10.4 および MariaDB 10.5 のアップストリームドキュメントを参照してください。 ターゲットシステムで、MariaDB サーバーを起動します。
スタンドアロンを実行しているデータベースをアップグレードする場合:
# systemctl start mariadb.serviceGalera クラスターノードをアップグレードする場合:
# galera_new_clustermariadbサービスが自動的に起動します。
mariadb-upgrade ユーティリティーを実行して、内部テーブルをチェックし、修復します。
スタンドアロンを実行しているデータベースをアップグレードする場合:
$ mariadb-upgradeGalera クラスターノードをアップグレードする場合:
$ mariadb-upgrade --skip-write-binlog
インプレースアップグレードには、特定のリスクと既知の問題があります。たとえば、一部のクエリーが動作しなかったり、アップグレード前とは異なる順序で実行される場合があります。これらのリスクと問題、およびインプレースアップグレードに関する全般的な情報は、MariaDB 10.5 Release Notes を参照してください。