シンボリックリンクを利用してデータベースの保存先を変更する 【mariadb, MySQL】
Contents
シンボリックリンクでデータベースの保存先を変更
mariadb, MySQLで、データベースの保存先の設定は、「/etc/my.cnf」の「datadir=/var/lib/mysql」の箇所です
# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
このdatadir の設定箇所を変更すれば、データベースの保存先を変更できますが、設定ファイルを変更せずシンボリックリンクでの作って保存先を変更します
新しいデータベースの保存先を作成します
新しいデータベースの保存先のディレクトリを作成します。下記の設定ではadminユーザーのhomeディレクトリに作成しています
$ mkdir -p /home/admin/database/
データベースを停止します
既存のデータベースの保存先をコピー(移動)する前に、データベース(mariadb, MySQL)を停止します
# mariadb の場合 $ sudo systemctl stop mariadb # mysql の場合 $ sudo systemctl stop mysqld
データベースのコピー及び所有者を変更します
データベースを停止してから、保存先を新しいディレクトリにコピーします。
$ sudo cp -pr /var/lib/mysql /home/admin/database/
シンボリックリンクを作成時に、「/var/lib/mysql」が存在したままだとシンボリックリンクが作成できないので、コピー後はデータベースを保存先は「mysql_old」にリネームします。
$ sudo mv /var/lib/mysql /var/lib/mysql_old
コピーしたディレクトリの所有者を「mysql」ユーザーに変更します
$ sudo chown -R mysql:mysql /home/admin/database/mysql
シンボリックリンクを作成します
lnコマンドでシンボリックリンクを作成します
$ sudo ln -s /home/admin/database/mysql /var/lib/mysql
データベースを起動します
シンボリックリンクを作成したら、データベースを起動します
# mariadb の場合 $ sudo systemctl start mariadb # mysql の場合 $ sudo systemctl start mysqld
※しばらく運用して問題がなければ、古いデータベースを保存先を削除します
$ sudo rm -rf /var/lib/mysql_old
ディスカッション
コメント一覧
まだ、コメントがありません