コンテンツにスキップ
「プリザンター入門」発売中!

MySQL データベース バックアップ・リストア手順

本手順はユーザマニュアルのインストール手順で構築したプリザンターのデータベース(Implem.Pleasanter)を対象としています。

手順

  1. バックアップ
    1. バックアップ
    2. 定期的にバックアップ
  2. リストア
    1. 同じ環境へリストア
    2. 異なる環境へリストア

1. バックアップ

1. バックアップ

バックアップファイルを取得します。この手順では /backup ディレクトリ配下に取得します。

sudo mkdir /backup
sudo chown -R 【mysqldumpを実行するユーザ名】 /backup
mysqldump -u root -p Implem.Pleasanter > /backup/Implem.Pleasanter.dump

2. 定期的にバックアップ

定期的にバックアップおよびバックアップファイルの削除を行いたい場合は、下記のようにcronを設定してください。

毎日2:00にデータベースのバックアップを取得
00 02 * * * /bin/mysqldump -u root -p【MySQLのrootアカウントのパスワードを-pとの間に空白を入れずに記述】 Implem.Pleasanter > /backup/`date "+\%Y\%m\%d"`_Implem.Pleasanter.dump
毎日1:00に一週間以上前のファイルを削除
00 01 * * * /bin/find /backup -maxdepth 1 -mtime +7 -type f -delete
上記の設定で実行するコマンド
sudo crontab -u 【バックアップ取得を実行するLinuxユーザ名※】 -e

Note

プリザンターを実行するLinuxユーザと同一で問題ありません。

2. リストア

1. 同じ環境へリストア

  1. リストア後切り戻せるように、リストア実行前のバックアップを取得します。

    mysqldump -u root -p Implem.Pleasanter > 【リストア前に取得するバックアップファイルの出力先パス/ファイル名】
    
  2. MySQLのrootアカウントでデータベースにログインします。

    mysql -u root -p
    
  3. SQLでデータベース(Implem.Pleasanter)を削除、再作成を行い、データベースからログアウトします。

    drop database `Implem.Pleasanter`;
    create database `Implem.Pleasanter` collate utf8mb4_general_ci;
    quit;
    
  4. リストアのコマンドを実行します。この手順では /backup ディレクトリ配下のバックアップファイルでデータベースを復元します。

    mysql -u root -p Implem.Pleasanter < /backup/Implem.Pleasanter.dump
    

2. 異なる環境へリストア

データベースは、上記「同じ環境へリストアを行う場合」と同様の手順で移行します。アプリケーションが該当データベースにアクセスする際に使用するMySQLユーザアカウントは、SQLで新規作成します。

1. データベースの移行

  1. 移行先でMySQLにログインします。

    mysql -u root -p
    
  2. SQLでデータベース(Implem.Pleasanter)作成を行い、データベースからログアウトします。

    create database `Implem.Pleasanter` collate utf8mb4_general_ci;
    quit;
    
  3. 移行先でリストアのコマンドを実行します。この手順では移行先の /migrate ディレクトリ配下のバックアップファイルでデータベースを移行します。

    mysql -u root -p Implem.Pleasanter < /migrate/Implem.Pleasanter.dump
    

2. MySQLユーザアカウントの追加

  1. 移行先でMySQLにログインします。

    mysql -u root -p
    
  2. SQLでMySQLのユーザアカウントを2件追加し、データベースからログアウトします。

    Warning

    以下のSQLでは、ユーザマニュアルのインストール手順で作成したMySQLのユーザアカウントと同一のユーザアカウントを移行先のデータベース上に作成します。

    create user '【Ownerのユーザ名】'@'localhost' identified by '【Ownerのパスワード文字列】';
    grant create, alter, index, drop on `【データベース名】`.* to '【Ownerのユーザ名】'@'localhost';
    grant select, insert, update, delete, create routine, alter routine on `【データベース名】`.* to '【Ownerのユーザ名】'@'localhost' with grant option;
    create user '【Userのユーザ名>'@'localhost' identified by '【Userのパスワード文字列>';
    grant select, insert, update, delete, create routine, alter routine on `【データベース名】`.* to '【Userのユーザ名】'@'localhost';
    quit;
    

    上記SQLにおける可変部の設定値は下記の通りです。

    可変部 設定例 説明
    データベース名 Implem.Pleasanter 上記「データベースの移行」で追加したデータベース名
    Ownerのユーザ名 Implem.Pleasanter_Owner Rds.jsonの"OwnerConnectionString"のUIDと一致する文字列。#ServiceName#部分は上記「データベース名」に置き換えること
    Ownerのパスワード文字列 SetAdminsPWD Rds.jsonの"OwnerConnectionString"のPWDと一致する文字列
    Userのユーザ名 Implem.Pleasanter_User Rds.jsonの"UserConnectionString"のUIDと一致する文字列。#ServiceName#部分は上記「データベース名」に置き換えること
    Userのパスワード文字列 SetUsersPWD Rds.jsonの"UserConnectionString"のPWDと一致する文字列
    作成するSQLの例

    例:Rds.jsonに記載されている接続文字列が以下の設定である場合

    Rds.json
    "OwnerConnectionString": "Server=localhost;Port=3306;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD",
    "UserConnectionString": "Server=localhost;Port=3306;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD",
    

    上記のRds.jsonの設定にもとづくMySQLユーザアカウント作成SQLの例:

    create user 'Implem.Pleasanter_Owner'@'localhost' identified by 'SetAdminsPWD';
    grant create, alter, index, drop on `Implem.Pleasanter`.* to 'Implem.Pleasanter_Owner'@'localhost';
    grant select, insert, update, delete, create routine, alter routine on `Implem.Pleasanter`.* to 'Implem.Pleasanter_Owner'@'localhost' with grant option;
    create user 'Implem.Pleasanter_User'@'localhost' identified by 'SetUsersPWD';
    grant select, insert, update, delete, create routine, alter routine on `Implem.Pleasanter`.* to 'Implem.Pleasanter_User'@'localhost';
    

3. 外部からMySQに接続するためのMySQLユーザアカウントの追加

WebサーバとDBサーバを分離した構成にする場合は、以下の手順を参照して外部からMySQに接続するためのユーザアカウントを追加します。

Ver.1.4.18.0以降の場合

〈追加手順〉
WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する(Ver.1.4.18.0以降)
└1. 新規環境構築手順

Ver.1.4.17.1以前の場合**

〈追加手順〉
WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する(Ver.1.4.17.1以前)
└【共通手順】外部接続用のユーザアカウントを追加するSQLの構文

なお、「WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する(Ver.1.4.17.1以前)」対象のプリザンターのバージョンはver1.4.10.0以降です。ver1.4.9.xではMySQLのインストール先と異なるホストでプリザンターを運用することはできないため、注意してください。

対応バージョン

対応バージョン 内容
1.4.9.0 以降 MySQLへの対応に伴いFAQを新規作成
1.4.10.0 以降 「異なる環境へリストアを行う場合」に「外部からMySQに接続するためのMySQLユーザアカウントの追加」Ver.1.4.17.1以前の場合の手順を追加
1.4.18.0 以降 「異なる環境へリストアを行う場合」に「外部からMySQに接続するためのMySQLユーザアカウントの追加」Ver.1.4.18.0以降の場合の手順を追加