ナレッジベース

とみっぺがこれまでのパソメンテサービスの中で
遭遇した顕著なトラブル例について、
現象や解決策などを記録し、
インターネットで共有しています。

TAGS

RECORDS

  • Xserver 新規 MySQL5.7 を WordPress の 5.5 ホストに繋ぎ 1045 になった

    現象

    エックスサーバー API で新規 MySQL 5.7 データベース(例: tomippe_stdbv6)と専用ユーザーを作成したあと、.envSTDB_DB_HOST に既存 WordPress(MySQL 5.5)のホスト名(mysql○a.xserver.jp 形式)を流用して接続した。

    サーバー上で SELECT 1 を実行すると、正しいパスワード・空パスワード・誤ったパスワード・存在しないユーザー名のいずれでも、同じ 1045 Access denied が返り続けた。API の user-update --password でパスワードを何度も再設定しても改善しなかった。

    原因・対処方法

    原因: 接続先ホストが MySQL/MariaDB 5.5 世代のサーバーだった。5.7 用に API で作成したユーザーは 5.5 サーバー上に存在しないため、認証以前に「ユーザーが居ない」状態となり、パスワードの正否に関わらず 1045 になる。

    エックスサーバー API で MySQL ホスト FQDN は取れない(確定):

    • server infohostname は Web サーバー用(sv69 等)であり、MySQL ホストではない
    • server db list に出るのは version_name(MySQL5.7)まで。ホスト FQDN フィールドは無い
    • server db get は存在しない
    • API 応答にホスト項目が無いのは見落としではない。パネル最下部の MySQL5.7 情報、またはプロジェクト正本(例: sTDBv6 は mysql1b.xserver.jp)を使う

    エージェント向け禁止事項:

    • 1045 が続くとき、先にホスト名の MySQL 世代を疑う。パスワード再設定を繰り返さない
    • 新規 MySQL 5.7 DB には mysql○a.xserver.jp(5.5 系)を使わない
    • 既存 WordPress の DB ホストをそのまま流用しない(世代が異なることがある)

    対処: サーバーパネル「MySQL設定 → MySQLの一覧」ページ最下部の「MySQL5.7情報」に記載のホスト名(mysql○○.xserver.jp、末尾 a なし)を STDB_DB_HOST に設定する。公式 FAQ によると、5.5(sv855 以前)は mysql○○a.xserver.jp、5.7 は mysql○○.xserver.jp 形式です。

    切り分けの目安: 正パス・誤パス・架空ユーザーで同じ 1045 → パスワード問題ではなくホスト/ユーザー存在の問題を疑う。

    参考記事

    インデックスに戻る