WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する(Ver.1.4.18.0以降)
概要¶
プリザンターのDBにMySQLを使用する際、プリザンターの配備先と異なるサーバにDBを構築する場合の手順です。本手順が必要となる背景は「FAQ:MySQLでWebサーバとDBサーバを分離した構成にしたい」の説明を参照ください。
制限事項¶
- 本手順の新規セットアップをインストーラで実施する場合、インストーラのバージョンは1.1.0以降のバージョンを利用ください。
- SQL ServerおよびPostgreSQLでは本手順は実施不要です。
- Ver.1.4.17.1以前の手順は「WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する(Ver.1.4.17.1以前)」を参照してください。
本手順の構成¶
本手順では、プリザンターを現在運用してしていない環境で新規にセットアップする場合、および、既にプリザンターを運用している環境でプリザンターとDBのサーバを分離する場合の各手順を掲載しています。
-
プリザンターを現在運用してしていない環境で新規にセットアップする場合
本手順の「1. 新規環境構築手順」を参照してください。 -
既にプリザンターを運用している環境でプリザンターとDBのサーバを分離する場合
本手順の「2. 既存DBの分離手順」を参照してください。
1. 新規環境構築手順¶
新規環境構築 - 準備¶
- プリザンターおよびMySQLのサーバの設定(サーバ名やIPアドレス等)をあらかじめ決めてください。
新規環境構築 - 手順¶
新規にプリザンターの環境を構築する際、SQLでDBユーザアカウントを追加する手順は以下の通りです。
-
新規セットアップのマニュアルの手順を初めから順番に実施し、データベースサーバ上で「MySQLのセットアップ」までおこないます。
-
SQLを実行するため、MySQLのサーバ上でMySQLにログインします。
Linuxの場合は以下コマンドでMySQLにログインします。
Windowsの場合はAzure Data Studio等のGUIツールを使用してMySQLにログインします。また、Pathを通して「mysql」コマンドを実行できるように設定している場合は、以下コマンドでMySQLにログインすることも可能です。
- Rds.jsonの"SaConnectionString"のユーザとして指定する「MySQLの管理ユーザアカウント@<接続元>」アカウントがMySQL上に存在するか確認します。
確認用コマンドの結果、user:root、host:% など外部から接続可能なアカウントが存在する場合は、手順1.4は実施不要のため、手順1.5に進んでください。
確認用コマンドは以下の通りです。
<接続元>について
| 条件 | 設定値 |
|---|---|
| 以下の要件が特段ない場合 | % |
| 指定の外部のホストのみMySQLへアクセスを許可する場合 | 接続を許可するホスト名/IPアドレス。複数の接続元を許可している場合は複数レコードが取得される。 |
- 「MySQLの管理ユーザアカウント@<接続元>」アカウントがMySQL上に存在しない場合は、アカウントを追加します。
create user 'root'@'<接続元>' identified by '<MySQLのrootアカウントのパスワード文字列>'; grant all on *.* to 'root'@'<接続元>' with grant option;
接続を許可するホストを複数指定する場合
(こちらをクリックすると詳細が開閉します)
SQL文は許可する全接続元について実行します。以下は実行SQLの例です。
- データベースサーバのファイアウォールの設定を変更し、MySQLのサービスに対する外部からの接続を許可します。
- マニュアルの手順通りにセットアップを最後まで進めます。
インストーラまたは手動で設定するRds.jsonの3箇所のデータベース接続文字列について("SaConnectionString"、"OwnerConnectionString"、"UserConnectionString")、Serverにデータベースサーバを指定してください。 -
インストーラまたは手動で設定するRds.jsonの"MySqlConnectingHost"について以下の通りに指定してください。
条件 設定値 以下の要件が特段ない場合(既定値) % 指定の外部のホストのみMySQLへアクセスを許可する場合 接続を許可するホスト名/IPアドレス。半角カンマ区切りで複数指定可(例:hostname01,hostname02) -
ブラウザからプリザンターを使用できることを確認します。
2. 既存DBの分離手順¶
既存DBの分離 - 準備¶
- プリザンターおよびMySQLのサーバの設定(サーバ名やIPアドレス等)をあらかじめ決めてください。
- 分離を実行する前に、プリザンターのサービスを停止します。
- MySQLを以前から運用中のものと異なるサーバに移転する場合は、以下手順を参照しDBのバックアップ・リストアを行ってください。
FAQ:MySQL データベース バックアップ・リストア手順
└ 異なる環境へリストアを行う場合
運用中のMySQLを引き続き同一のサーバで使用する場合、DBのバックアップ・リストアは不要です。
既存DBの分離 - 手順¶
既にプリザンターを運用している環境でプリザンターとDBのサーバを分離する手順は以下の通りです。
- Rds.jsonを編集し、3箇所のデータベース接続文字列について("SaConnectionString"、"OwnerConnectionString"、"UserConnectionString")、Serverにデータベースサーバを指定してください。
-
Rds.jsonを編集し、"MySqlConnectingHost"について以下の通りに指定してください。
条件 設定値 以下の要件が特段ない場合(既定値) "%" 指定の外部のホストのみMySQLへアクセスを許可する場合 "接続を許可するホスト名/IPアドレス"。半角カンマ区切りで複数指定可(例:"hostname01,hostname02") -
SQLを実行するため、MySQLのサーバ上でMySQLにログインします。
Linuxの場合は以下コマンドでMySQLにログインします。
Windowsの場合はAzure Data Studio等のGUIツールを使用してMySQLにログインします。また、Pathを通して「mysql」コマンドを実行できるように設定している場合は、以下コマンドでMySQLにログインすることも可能です。
- Rds.jsonの"SaConnectionString"のユーザとして指定する「MySQLの管理ユーザアカウント@<接続元>」アカウントがMySQL上に存在するか確認します。
確認用コマンドの結果、user:root、host:% など外部から接続可能なアカウントが存在する場合は、手順2.5は実施不要のため、手順2.6に進んでください。
確認用コマンドは以下の通りです。
<接続元>について
| 条件 | 設定値 |
|---|---|
| 以下の要件が特段ない場合 | % |
| 指定の外部のホストのみMySQLへアクセスを許可する場合 | 接続を許可するホスト名/IPアドレス。複数の接続元を許可している場合は複数レコードが取得される。 |
- 「MySQLの管理ユーザアカウント@<接続元>」アカウントがMySQL上に存在しない場合は、アカウントを追加します。
create user 'root'@'<接続元>' identified by '<MySQLのrootアカウントのパスワード文字列>'; grant all on *.* to 'root'@'<接続元>' with grant option;
接続を許可するホストを複数指定する場合
(こちらをクリックすると詳細が開閉します)
SQL文は許可する全接続元について実行します。以下は実行SQLの例です。
- データベースサーバのファイアウォールの設定を変更し、MySQLのサービスに対する外部からの接続を許可します。
- CodeDefinerを_rdsモードで実行します。
Linuxの実行例cd /web/pleasanter/Implem.CodeDefiner sudo -u <プリザンターを起動するユーザ> /usr/local/bin/dotnet Implem.CodeDefiner.dll _rds
途中で 「Type "y" (yes) if the license is correct, otherwise type "n" (no).」 と表示されたら y を入力してください。 - プリザンターのサービスを起動します。
- ブラウザからプリザンターを使用できることを確認します。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.4.18.0 以降 | MySQLのDBへの接続元ホストにlocalhost(DBと同一のサーバ)以外を指定する機能の追加に伴いマニュアルを公開 |
