MySQL データベース バックアップ・リストア手順
本手順はユーザマニュアルのインストール手順で構築したプリザンターのデータベース(Implem.Pleasanter)を対象としています。
手順¶
- バックアップ
- バックアップ
- 定期的にバックアップ
- リストア
- 同じ環境へリストア
- 異なる環境へリストア
1. バックアップ¶
1. バックアップ¶
バックアップファイルを取得します。この手順では /backup ディレクトリ配下に取得します。
sudo mkdir /backup
sudo chown -R 【mysqldumpを実行するユーザ名】 /backup
mysqldump -u root -p Implem.Pleasanter > /backup/Implem.Pleasanter.dump
2. 定期的にバックアップ¶
定期的にバックアップおよびバックアップファイルの削除を行いたい場合は、下記のようにcronを設定してください。
00 02 * * * /bin/mysqldump -u root -p【MySQLのrootアカウントのパスワードを-pとの間に空白を入れずに記述】 Implem.Pleasanter > /backup/`date "+\%Y\%m\%d"`_Implem.Pleasanter.dump
Note
プリザンターを実行するLinuxユーザと同一で問題ありません。
2. リストア¶
1. 同じ環境へリストア¶
-
リストア後切り戻せるように、リストア実行前のバックアップを取得します。
-
MySQLのrootアカウントでデータベースにログインします。
-
SQLでデータベース(Implem.Pleasanter)を削除、再作成を行い、データベースからログアウトします。
-
リストアのコマンドを実行します。この手順では /backup ディレクトリ配下のバックアップファイルでデータベースを復元します。
2. 異なる環境へリストア¶
データベースは、上記「同じ環境へリストアを行う場合」と同様の手順で移行します。アプリケーションが該当データベースにアクセスする際に使用するMySQLユーザアカウントは、SQLで新規作成します。
1. データベースの移行¶
-
移行先でMySQLにログインします。
-
SQLでデータベース(Implem.Pleasanter)作成を行い、データベースからログアウトします。
-
移行先でリストアのコマンドを実行します。この手順では移行先の /migrate ディレクトリ配下のバックアップファイルでデータベースを移行します。
2. MySQLユーザアカウントの追加¶
-
移行先でMySQLにログインします。
-
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以降の場合の手順を追加 |
