MariaDBのデータベースは、デフォルトで特定のディレクトリにデータを保存します。しかし、システムのディスク容量を効率的に使いたい場合や、パフォーマンスを向上させるために、データベースのストレージ場所を変更することがしばしば求められます。ここでは、MariaDBのデータディレクトリを変更する方法について詳しく説明します。この変更作業は慎重に行う必要があり、適切な手順を守ることで、データの損失を防ぎつつ、システムのパフォーマンスを最適化することができます。
1. MariaDBのデータディレクトリの変更準備
MariaDBのデータベースのデータが保存されるディレクトリは、通常/var/lib/mysql
です。このディレクトリを別の場所に変更する前に、以下の準備を行う必要があります。
1.1 バックアップの取得
データディレクトリを変更する際には、データが失われるリスクを避けるため、最初にバックアップを取っておくことが重要です。バックアップを取るには、次のコマンドを使用します。
bashmysqldump -u root -p --all-databases > /path/to/backup/all_databases.sql
このコマンドは、MariaDBの全てのデータベースをバックアップファイルに保存します。保存先のパスは適宜変更してください。
1.2 MariaDBの停止
データディレクトリを移動する前に、MariaDBを停止する必要があります。これを行うには、以下のコマンドを実行します。
bashsudo systemctl stop mariadb
これで、MariaDBのサービスが停止し、データファイルを安全に移動できるようになります。
2. データディレクトリの変更
2.1 新しいデータディレクトリの作成
新しい場所にMariaDBのデータを保存するためのディレクトリを作成します。例えば、/mnt/data/mysql
に移動したい場合は、以下のコマンドを使用します。
bashsudo mkdir -p /mnt/data/mysql
sudo chown mysql:mysql /mnt/data/mysql
このコマンドで新しいディレクトリを作成し、mysql
ユーザーとmysql
グループに適切な権限を設定します。
2.2 現在のデータディレクトリの移動
次に、現在のデータディレクトリ(/var/lib/mysql
)の内容を新しいディレクトリにコピーします。以下のコマンドを使用します。
bashsudo cp -R /var/lib/mysql/* /mnt/data/mysql/
この操作は慎重に行う必要があります。もしコピーが完了する前にMariaDBを再起動してしまうと、データが壊れる可能性があるため、コピー完了までサービスを停止しておくことが重要です。
2.3 MariaDBの設定ファイルの変更
次に、MariaDBの設定ファイル(my.cnf
)を編集して、新しいデータディレクトリを指定します。通常、my.cnf
ファイルは/etc/mysql/my.cnf
または/etc/my.cnf
にあります。設定ファイルを編集するには、以下のコマンドを使用します。
bashsudo nano /etc/mysql/my.cnf
設定ファイル内で、datadir
の項目を次のように変更します。
ini[mysqld]
datadir=/mnt/data/mysql
これにより、MariaDBが新しいデータディレクトリを使用するようになります。
2.4 AppArmor(Ubuntuなどの場合)の設定変更
Ubuntuなど、AppArmorが有効になっているシステムでは、MariaDBが新しいデータディレクトリを認識できるように、AppArmorの設定を変更する必要があります。設定ファイルを編集して、新しいディレクトリを許可するようにします。
bashsudo nano /etc/apparmor.d/usr.sbin.mysqld
このファイル内で、/var/lib/mysql
を新しいディレクトリ(例:/mnt/data/mysql
)に置き換えます。変更を保存した後、AppArmorの設定をリロードします。
bashsudo service apparmor reload
3. MariaDBの再起動と動作確認
設定が完了したら、MariaDBを再起動して、新しい設定が適用されることを確認します。
bashsudo systemctl start mariadb
再起動後、MariaDBが正常に起動するか確認するために、mysql
コマンドラインツールでログインします。
bashmysql -u root -p
正常に接続できた場合、データディレクトリの変更が成功したことを意味します。また、以下のコマンドでデータベースの動作確認を行うことができます。
sqlSHOW VARIABLES LIKE 'datadir';
このコマンドは、現在使用しているデータディレクトリのパスを表示します。新しいパスが表示されれば、設定変更が正しく適用されています。
4. 古いデータディレクトリの削除(オプション)
新しいデータディレクトリが正常に動作していることを確認したら、古いディレクトリを削除しても構いません。ただし、削除する前に必ずバックアップを取るようにしましょう。
bashsudo rm -rf /var/lib/mysql
これで、MariaDBのデータディレクトリを新しい場所に変更する作業が完了しました。
結論
MariaDBのデータディレクトリを変更する作業は、システムのパフォーマンス向上やディスク容量の効率的な使用に役立ちます。しかし、慎重に作業を行い、バックアップを取ることが重要です。設定ファイルの変更、データのコピー、サービスの再起動など、いくつかのステップを確実に行うことで、問題なく移行できます。