Plesk環境でのMySQLデータベース管理
PleskはMySQLのDBとDBユーザを独自に管理している。
そのため、Plesk環境下では、DBやDBユーザを新規作成するとき、コントールパネル上から行わないと不整合が生じる。
PleskからphpMyAdminを起動できるようになっているにもかかわらず、phpMyAdminでDBやDBユーザの追加(たぶん変更・削除も)をしたものは解釈しません(できません?)ということらしい。(-。-;)
そんな素敵仕様とは知らずに既に多くのDBを作って運用し始めてしまったアンポンタンな筆者の選択肢は?
1.DBをmysqldumpして、Plesk経由でDBとDBユーザを作り直して、restoreしなおす。
2.Pleskには理解していただかなくても結構です(管理外)と、コンパネと決別する。
3.Pleskになんとか理解していただけないかと説得を試みる。
"Plesk、なぜあなたはこんな制約を?"というPleskを理解しようという心持ち(努力は大切だ)と作業量予測から先ずは3.からアプローチ。PleskがMySQLのDBとDBユーザをどう把握しているのかを軽く探ってみることに…
どうやらPleskは、MySQLに"psa"というDBを持って、そこに自身の管理用データを集約している(ようだ?)。
MySQLに関しては、その中の"data_bases"と"db_users"というtableを使っている(ような)ので、その2つのtableに反映させてやればよい(ようだ? ようだ?ばかりで恐縮です)。せめて推測しやすい名前であったことを軽く神に感謝しつつ覗いてみると…
table → data_bases
field → id, name, type, dom_id, db_server_id, default_user_id
table → db_users
field → id, login, account_id, db_id
と解りやすいご関係。(あくまで現状内部仕様の話)
テーブルを直接触る前にもうひとつ理解しておいたほうが良い(?)Pleskの独自素敵仕様がある。
Pleskのコンパネ上からはDBとDBユーザを1:1でしか定義できない(させない?させたくない?)。
例えば全権ユーザrootなどを作って、複数のDBを横断的に使いたいとしても普通にはできない。かといって同じDBユーザ名、例えば全てadminとかを許すのかというと当然のごとくAlreadyなんちゃらみたいに怒られる(-。-;)
これらの制約も上記の2つのテーブルを整合性をもって調節してやれば可能です。
リレーション関連図でも描いて貼ろうかと思ったけど、実データで見れば解る程度なので省略します。