FAQ:MySQLでWebサーバとDBサーバを分離した構成にしたい
## 回答
以下のマニュアルを参照し、追加手順を実施してください。
[WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する](mysql-create-user-by-sql)
---
## 制限事項
1. MySQLでWebサーバとDBサーバを分離した構成にする際、プリザンターのバージョンは1.4.10.0 以降としてください。プリザンターはVer1.4.9.0以降でMySQLに対応しましたが、上記追加手順はVer1.4.10.0以降でなければ実施できません。
2. SQL ServerおよびPostgreSQLでは上記追加手順は実施不要です。
## 説明
MySQLの仕様により、MySQLのユーザアカウント管理では接続元の情報が管理されます。この仕様のため、登録されていないサーバ上にあるプリザンター(およびCodeDefiner)の処理でMySQLへ接続しようとした際はエラーになります。
### 同一サーバにMySQLとプリザンターが共存する場合
上記追加手順は実施不要です。
![image](https://pleasanter.org/binaries/fdddc822da3b48e0b48a733d9829d367)
[プリザンターの標準のセットアップ手順](https://pleasanter.org/ja/manual?category=0092)は、MySQLセットアップの際にlocalhost接続のみ可能なrootアカウント(以下、「root@localhost」と表記する。)が作成されたことを想定している手順です。プリザンターのセットアップ手順においてCodeDefinerを実行する際、DBにテーブルを作成するためにrootアカウントを使用しますが、前述の通りMySQLセットアップにおいてroot@localhostが作成されているため、同一サーバにMySQLとプリザンターが共存する場合は、追加手順の実施は不要です。
### MySQLとプリザンターのサーバを分離する場合
「[WebサーバとDBサーバを分離した構成でMySQLを利用できるように設定する](mysql-create-user-by-sql)」の実施が必要です。
![image](https://pleasanter.org/binaries/72a8a92caa56487cbd56089591415530)
サーバを分離した構成では、セットアップ時にCodeDefinerのサーバからMySQLのサーバへ接続が行われるため、「root@プリザンター(およびCodeDefiner)を配備したサーバ」のアカウントをMySQL上にあらかじめ作成しておく必要があります。
なお、プリザンターおよびCodeDefinerでは、合計3件のMySQLのユーザアカウント(rootおよび2件の追加アカウント)を使い分けるため、追加手順ではSQLを実行して合計3件のMySQLのユーザアカウントを新規作成します。
## 対応バージョン
|対応バージョン|内容|
|:--|:--|
|1.4.10.0 以降|MySQLのアクセス制御機能によりOwner、Userの接続が拒否される場合がある問題の解消に伴いFAQを公開<br>※プリザンターはVer1.4.9.0以降でMySQLに対応しましたが、本FAQの回答で示した手順はVer1.4.10.0以降でなければ実施できません。|