MariaDB/MySQL

[MariaDB/MySQL] データファイルの保存先ディレクトリを変更する方法

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を設定する必要がある。
vi /usr/lib/systemd/system/mariadb.service
[Service]

ProtectHome=false
 

Configuring Access to Home Directories

MariaDB'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
これでデータファイルの移動が完了です。

関連記事

-MariaDB/MySQL

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.