エックスサーバーのアクセス権所有ユーザが突如「ユーザーはいません」になったときの解決方法

error_establishing

ある日「サイト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 データベースのパスワードも自由に変更できます。

ポイントはそのふたつのパスワードを揃えてあげること。案外かんたんに解決できるのでした。