ある日「サイトA」を閲覧しようとしたところ白バックに黒文字で「Error establishing a database connection」と表示され、コンテンツが表示されなくなりました。もちろんログインもできません。
このアラートが出る原因はいろいろあるようですが、今回はアクセス権所有ユーザのパスワードを誤って変更してしまったことが原因のようです。
エックスサーバーでアクセス権所有ユーザを確認
エックスサーバーのサーバーパネル>MySQL設定を確認したところ、アクセス権所有ユーザが「ユーザーはいません」となっていました。
そこで当初設定したユーザー名を確認するためFTPソフト「FFFTP」でサイト側のwp-config.phpを確認したところ「●▼■◆◆★_wp◆」と設定されていました。
サイトAのwp-config.phpの記述
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘********’);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘●▼■◆◆★_wp◆‘);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘◇◎☆□▽△‘);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘********’);
ユーザー名に異なるパスワードを設定
原因には思い当たる節がありました。
最近「サイトB」でこのユーザー名「●▼■◆◆★_wp◆」を使用し、うっかりそのデータベースのパスワード「%&?#$$」を設定してしまったのです。もしかしたらそれ以前にユーザー名「●▼■◆◆★_wp◆」をいったん削除した可能性もあります。この辺りの記憶は曖昧。
いずれにしろこの辺りが原因で「ユーザーはいません」になってしまったようです。
「サイトA」にこのユーザー名を復活させてもすでにパスワードが異なるためデータベースが機能しない状態となっています。
解決方法は3つ
解決方法1:パスワードを「サイトA」に揃える
ステップ1-1
エックスサーバーのサーバーパネル>MySQL設定で「サイトA」のアクセス権所有ユーザに「●▼■◆◆★_wp◆」を追加(復帰)
ステップ1-2
「サイトA」のwp-config.phpに記されているMySQL データベースのパスワード「◇◎☆□▽△」をそのユーザー名のパスワードに変更する
ステップ1-3
「サイトB」のwp-config.phpに記されているMySQL データベースのパスワード「%&?#$$」を「サイトA」の「◇◎☆□▽△」に変更しファイルをアップ・更新する
解決方法2:パスワードを「サイトB」に揃える
ステップ2-1
すでに「サイトB」で設定されているユーザー名「●▼■◆◆★_wp◆」のパスワードはそのまま。
ステップ2-2
エックスサーバーのサーバーパネル>MySQL設定で「サイトA」のアクセス権所有ユーザに「●▼■◆◆★_wp◆」を追加(復帰)。
ステップ2-3
「サイトA」のwp-config.phpに記されているMySQL データベースのパスワード「◇◎☆□▽△」を「サイトB」の「%&?#$$」に変更しファイルをアップ・更新する。
解決方法3:サイトAにまったく新しいユーザー名を設定する
ステップ3-1
エックスサーバーのサーバーパネル>MySQL設定で「サイトA」のアクセス権所有ユーザに新しいユーザー名を追加する。
ステップ3-2
新しいユーザー名のパスワードには「サイトA」のwp-config.phpに記されているMySQL データベースのパスワード「◇◎☆□▽△」を設定する
まとめ
ひとつのユーザー名で複数のデータベースを管理するのをやめたかったので今回は「解決方法3」を実行しました。
エックスサーバーのサーバーパネル>MySQL設定でアクセス権所有ユーザのパスワードは自由に変更できます。
またwp-config.phpに記されているMySQL データベースのパスワードも自由に変更できます。
ポイントはそのふたつのパスワードを揃えてあげること。案外かんたんに解決できるのでした。