MariaDB(MySQL):データディレクトリの変更方法

ディスクの空容量確保などの理由から、データベース MariaDB(MySQL) のデータディレクトリ(datadir)を変更しなければならない場合、手動にてデータディレクトリをパスを変更する必要があります。その変更手順をまとめました。(2017/06/18作成)

Maria Didgeman / Pixabay

0.環境

$ cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 

$ mysql --version
mysql  Ver 15.1 Distrib 10.1.24-MariaDB, for Linux (x86_64) using readline 5.1

1.変更概要

変更前: /var/lib/mysql
変更後: /home/mysql_data

2.変更手順

1)MariaDB ステータス確認

$ systemctl status mariadb.service

2)MariaDB サービス停止

$ sudo systemctl stop mariadb.service

3)変更先ディレクトリ作成

$ sudo mkdir mkdir /home/mysql_data
$ sudo chmod 755 /home/mysql_data
$ sudo chown mysql:mysql /home/mysql_data 

4)既存データディレクトリコピー

$ sudo cp -rfp /var/lib/mysql/* /home/mysql_data/

5)設定ファイル変更(MariaDB)

$ sudo vi /etc/my.cnf

[mysqld]
# datadir=/var/lib/mysql
datadir=/home/mysql_data
# socket=/var/lib/mysql/mysql.sock
socket=/home/mysql_data/mysql.sock

[client]
socket=/home/mysql_data/mysql.sock

6)設定ファイル変更(mariadb.service)

/home 配下に「datadir」を設置する場合。

To run MariaDB SQL from /home, in the file /usr/lib/systemd/system/mariadb.service, just change :

$ sudo vi /usr/lib/systemd/system/mariadb.service

ProtectHome=true
to :
ProtectHome=false

7)MariaDB サービス開始

$ sudo systemctl start mariadb.service

3.その他変更

PHP設定ファイル「 /etc/php.ini 」の mysql「 default_socket 」を変更。

pdo_mysql.default_socket=/home/mysql_data/mysql.sock
mysql.default_socket =/home/mysql_data/mysql.sock
mysqli.default_socket =/home/mysql_data/mysql.sock

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。