MySQL にアクセスできる PHP Web サイトを開発しています。私のホスティング サイトは共有phpmyadmin
されており、共有ホスティング サーバーにインストールされている から DB を作成しました。2 人のユーザーを作成しました。1 人は管理者権限を持ち、もう 1 人は読み取り/書き込み権限のみを持ちます。両方のアカウントを使用して phpmyadmin に正常に接続できますが、同じアカウントと同じ資格情報を使用して mysql にアクセスしようとすると、php から次のように表示されます。
Database connection failed: Access denied for user 'myusername'@'localhost' (using password: YES)
これは非常に奇妙です。PHPMyAdmin
サーバーはlocalhostであると言うのでmysql_connect
、phpの関数に正しいサーバーパラメーターを使用していることを意味します.
何がうまくいかなかったのか誰にも分かりますか?mysql が PHPMyAdmin に対してのみ有効になっている可能性はありますか (これはばかげています)。
どうもありがとうございました。助けていただければ幸いです。:)
サンプル コードは次のとおりです (セキュリティ上の理由から、ユーザー名とパスワードは置き換えられます)。
defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "host_admin");
defined('DB_PASS') ? null : define("DB_PASS", "mysuperpassword");
defined('DB_NAME') ? null : define("DB_NAME", "mydb_inhostingserver");
...
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection) {
die("Database connection failed: " . mysql_error());
} else {
$db_select = mysql_select_db(DB_NAME, $this->connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
}
...
Database connection failed: Access denied for user 'host_admin'@'localhost' (using password: YES)
4つの定数もエコーしましたが、それらの値は正しいです! 私はここで本当に迷っています...
追加情報:
- FTP アドレスは ftp.thewebsiteimtalkingabout.com です。
- PhpMyAdmin のアドレスは mysql.thewebsiteimtalkingabout.com です。
これは、私のコードと MySQL の phpmnyadmin が同じホストで実行されていることを意味しますか?
答え:
わかりましたので、ドメインは同じですが、別のサーバーにあるという理論をテストしていました。それぞれの IP アドレスを抽出したところ、それらが異なることがわかりました。次に、「localhost」パラメーターを phpmyadmin が存在する場所の IP アドレスに置き換えたところ、ブームになりました! これで接続されました。返信ありがとうございます!