Server Relocation — Part 3

以下、備忘録としてサーバー移転時の顛末を記録すると共に、VALUE-SERVERやCORESERVERなどで、複数のデータベースを作成して複数の独自ドメインWordPressサイトを運用しようとしている人に向けて公開します。

レンタルサーバー移転に伴い、データベースが見えなくなるという事態に陥りましたが、昨日、その解決方法の糸口を見つけ、実行したら正常にデータベースが見えるようになりました。データベースが見えなかった原因は初歩的なミスによるものでした。通常、レンタルサーバーのアカウントを取得し、一つの独自ドメインで一つのデータベースに一つのWordPressサイトを運用するのであれば、データベースが見えなくなるという深刻な事態は起こり得ないことです。

今回のサイト移転(出戻り)で、2年前の状況と異なるのは、二つのデータベースを用いて二つのWordPressサイトを運用することになったことです。2年前までは同一レンタルサーバーにRapidWeaverを用いて作成した静的データのみで構成される簡単な独自ドメイン商用サイトとWordPressで制作する独自ドメインの当ブログサイトを管理していました。静的なデータのみで構成されるHTMLのサイトであれば、データベースは不要なので、当時はブログ用として使う単一データベースでの運用でした。

その後、WordPressのPagesの機能を使用すれば、RapidWeaverで制作した商用サイトとほぼ同じコンテンツのサイトが制作できることに気づき、商用サイトの方もWordPressでの運用に移行しました。つまり、商用サイト用のデータベースが必要になったということです。しかしながら、その時点では当ブログサイトは、VALUE-SERVERの方に移転済みであり、商用サイトを運用するCORESERVERの方は単一データベースでの運用となっていました。

このような状況で、今回、当ブログサイトをVALUE-SERVERからCORESERVERに移転(出戻り)させたことで、複数のデータベースが必要になったということです。(WordPressには「マルチサイト」の機能が実装されており、一つのサーバーで複数のサイトを複数のドメインで運用することも可能ですが、重いブログサイトの影響が軽い商用サイトに及ぶ可能性があるので、「マルチサイト」の機能は使用しないことにしました。)

mysql

 CORESERVERでMySQL(データベース)を追加するには、管理メニュー > データベースで「DB/ユーザー名」を指定し、パスワードを作成、文字コードを初期設定のEUC-JPからUNICODEに変更します。最上段のデータベースは商用サイト用のもので、当ブログサイトを移転(出戻り)させる前からありました。今回、2段目に新たにブログサイト用のデータベースを作成しました。これで二つのデータベースができたことになります。

PhpMyAdminにログインしたらこれら二つのデータベースが管理できるものと私は思っていました。実際は元からあった商用サイト用のデータベースしか見れないし、管理もできない状況でした。

CORESERVERのサイトをよく見ると、「PhpMyAdmin/PhpPgAdminインストール」の欄に次のように書いてありました。

※複数のデータベースをご利用になる場合は、設定ファイル「config.inc.php」のパスワードなどを変更してください。

設定ファイル(config.inc.php)はどこにあるのかもわからずネットで調べていると、XREAのアカウントをお持ちのこちらの方のサイトがヒットしました。XREAは、CORESERVERを運営するGMO INTERNET GROUPが提供する無料ウェブサービスであり、設定方法は基本的に同じ。

当サイトの場合であれば、”config.inc.php”は/public_html/log/phpmyadminの中にありました。このファイルをローカルにダウンロードしてテキストエディターで編集しました。具体的には、* First serverの最終行に

$cfg[‘Servers’][$i][‘only_db’] = ‘商用サイトDB/ユーザー名‘;

を追加し、First serverの部分全体をコピーして下にペーストし、Second serverの部分の最終行のDB/ユーザー名を上書きしました。


/*
* First server
*/
$i++;
/* Authentication type */
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
/* Server parameters */
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
$cfg[‘Servers’][$i][‘compress’] = false;
/* Select mysqli if your server has it */
$cfg[‘Servers’][$i][‘extension’] = ‘mysql’;
$cfg[‘Servers’][$i][‘AllowNoPassword’] = false;
$cfg[‘Servers’][$i][‘only_db’] = ‘商用サイトのDB/ユーザー名‘;

/*
* Second server
*/
$i++;
/* Authentication type */
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
/* Server parameters */
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
$cfg[‘Servers’][$i][‘compress’] = false;
/* Select mysqli if your server has it */
$cfg[‘Servers’][$i][‘extension’] = ‘mysql’;
$cfg[‘Servers’][$i][‘AllowNoPassword’] = false;
$cfg[‘Servers’][$i][‘only_db’] = ‘当ブログサイトのDB/ユーザー名‘;


phymyadmin

これでphpMyAdminのログイン画面のServer Choiceで二つのデータベースをプルダウンメニューで選べるようになりました。これでやっと当ブログサイト用のデータベースが見れると思ったのですが、”Go”をクリックしても商用サイト用のデータベースしか見れません。この原因は私の初歩的なミスだったのですが、解決するのに丸一日も要しました。

phyMyAdminのログイン画面ではデフォルトでUsernameの欄に商用サイト用データベースのユーザー名が入っていました。ユーザー名を変更することなく、そのままの状態でパスワードを入力し、Server Choiceプルダウンメニューから当ブログサイトのデータベースを選んで”Go”をクリックしていました。結果はMySQLにログインできても”No databases”

大事なことを一つ忘れていました。データベース名とユーザー名が兼用であるので、Server Choiceのプルダウンメニューから選ぶデータベース名と同じものを、Usernameの欄にも入力し直す必要があるということです。正しいユーザー名とサーバーを選択するとやっと当ブログサイトのデータベースが現れました。

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.