Ubuntu 20.04でMariaDB 10.5へアップグレードする際のエラー「Fatal error in defaults handling」の対処法
MariaDB へのアップグレード中に発生する "Fatal error in defaults handling" エラーについて
このエラーは、MariaDB 10.5 のデフォルト設定ファイル /etc/mysql/my.cnf
に、MySQL 5.6 と互換性のない設定が含まれていることが原因です。
解決方法
この問題を解決するには、以下の手順を実行します。
設定ファイルのバックアップを取る
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
問題のある設定行を修正する
以下のコマンドを実行して、my.cnf
ファイルを開きます。
sudo nano /etc/mysql/my.cnf
以下の設定行を見つけ、コメントアウトします (行頭に #
を追加します)。
#innodb_buffer_pool_size = 128M
#innodb_log_file_size = 50M
MariaDB パッケージを再インストールする
以下のコマンドを実行して、MariaDB パッケージを再インストールします。
sudo apt install mariadb-server-10.5
MariaDB サービスを再起動する
sudo systemctl restart mariadb
これらの手順を実行することで、エラー "Fatal error in defaults handling" を解決し、MySQL 5.6 から MariaDB 10.5 へのアップグレードを正常に完了することができます。
補足情報
- 問題を解決するには、
my.cnf
ファイルから問題のある設定行をコメントアウトする必要があります。 - MariaDB パッケージの再インストールとサービスの再起動により、新しい設定が有効になります。
# /etc/mysql/my.cnf
# デフォルトの文字コード設定
character-set-server = utf8mb4
# データベース接続の最大数
max_connections = 100
# インデックスバッファのサイズ
innodb_buffer_pool_size = 1G
# InnoDB ログファイルのサイズ
innodb_log_file_size = 50M
# その他の設定
# ...
このサンプルコードでは、以下の設定が定義されています。
- デフォルトの文字コードは
utf8mb4
に設定されています。 - データベース接続の最大数は 100 に設定されています。
- インデックスバッファのサイズは 1GB に設定されています。
- InnoDB ログファイルのサイズは 50MB に設定されています。
このサンプルコードはあくまでも例であり、必要に応じて修正する必要があります。
補足情報
- MariaDB の設定ファイルは、
/etc/mysql/my.cnf
ファイル以外にも存在する場合があります。 - 設定ファイルの場所は、MariaDB のインストール方法によって異なる場合があります。
- 設定ファイルを編集する前に、必ずバックアップを取るようにしてください。
MariaDB へのアップグレード中に発生する "Fatal error in defaults handling" エラーを解決する他の方法
MariaDB 10.5 のデフォルト設定ファイルを削除する
sudo rm /etc/mysql/my.cnf
この方法を実行すると、MariaDB は起動時に新しいデフォルト設定ファイル /etc/mysql/my.cnf.d/mariadb.cnf
を作成します。
MySQL 5.6 の設定ファイルを MariaDB 10.5 にコピーする
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
sudo cp /etc/mysql/my.cnf.bak /etc/mysql/my.cnf
この方法を実行すると、MariaDB 10.5 は MySQL 5.6 の設定ファイルを使用します。
- MariaDB 10.5 のソースコードをダウンロードします。
- ソースコードを解凍します。
- 解凍したディレクトリで
./configure
コマンドを実行します。 sudo make install
コマンドを実行して MariaDB をインストールします。
この方法は上級者向けです。
補足情報
- 上記の方法を試しても問題が解決しない場合は、MariaDB のフォーラムやコミュニティでサポートを求めることができます。
mariadb