MariaDBやMySQLでデータファイルのディレクトリ保存先を変えたいことは多々あると思います。
- ディスク領域が足りなくなって別ディレクトリに移動
- SSDなどの高速ディスク領域に配置
など理由が考えらます。
今回はMariaDBで手順を紹介していきます。
MySQLでも同様の手順で実施可能です。 またOSはCentOS 7系で実施します。
目次
ディレクトリ領域の作成
まずは格納先ディレクトリを作成します。
mkdir -p /database/mariadb
chown mysql:mysql /database -R
今回MariaDBを起動するOSユーザは「mysql」です。
chown で変更するディレクトリの所有者は環境にあわせて変更してくだだい。
データベースの停止と既存ファイルの移動
データベースを停止しないと不整合が発生するためデータベースをきちんと停止させた後にデータファイルを移動させます。
systemctl stop mariadb.service
cd /var/lib/mysql
cp -rp * /database/mariadb/.
今回はまるっとデータファイルをコピーしています。
設定ファイルの変更
データファイルの格納先を変更するには設定ファイルを編集します。
vi /etc/my.cnf
以下を追記します。
#datadir=/var/lib/mysql
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/database/mariadb/mysql.sock
仮に/home や /root 配下のデータファイルを格納する場合は、ProtectHomeを設定する必要がある。
Configuring Access to Home DirectoriesMariaDB\’s systemd unit file restricts access to /home, /root, and /run/user by default. This restriction can be removed by setting the ProtectHome option to false for the MariaDB systemd service. For example, you ca
vi /usr/lib/systemd/system/mariadb.service
以下を追記します。
[Service]
ProtectHome=false
参考:MariDBマニュアル「systemd」## サーバの起動
最後はデータベース起動します。
systemctl start mariaddb
これでデータファイルの移動が完了です。