-1

データベースに接続しようとすると、「アクセスが拒否されました」というエラーが表示されます。コードは次のとおりです。

    <?php
    mysql_connect("00.00.00.00:00000","user","pass");
    mysql_select_db("dbname");

    $q=mysql_query("CALL  GetMaterialInfo('".$_REQUEST['user']."','".$_REQUEST['pass']."','6c3e91d3')");
    while($e=mysql_fetch_assoc($q))
        $output[]=$e;

    print(json_encode($output));

    mysql_close();
    ?>

もちろん、ホストのIPアドレス(すべてがゼロではない)と、ユーザー名とパスワード、およびデータベース名を変更しました。ユーザーとパスワード、ホストのIPとポート番号、データベース名が正しいと確信しています。JDBCコネクタを使用してすでにデータベースに接続できましたが、PHPスクリプトを介して次のエラーが発生します。

<b>Warning</b>:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'username'@'192.168.1.1' (using password: YES) in <b>/www/zxq.net/t/e/s/testphpbach/htdocs/Connection.php</b> on line <b>2</b><br />


4

3 に答える 3

4

次のチェックを行う必要があります。

  1. 192.168.1.1が/etc/hostsに含まれていることを確認してください。データベースがローカルホストマシン上にある場合は、IPの代わりにローカルホストを使用してみてください。
  2. ポートが開いているかどうかを確認します。telnet(ip / localhostなど)を使用してみてください。例:telnet localhost 2222
  3. データベースにユーザー名とパスワードの権限が付与されているかどうかを確認してください。特権の確認には、を使用しますSHOW GRANTS [FOR user]。詳細については、こちらをご覧ください 。これでうまくいかない場合は、デフォルト以外のユーザーを使用してみてください。
    何が起こるか教えてください
于 2012-05-03T13:25:43.023 に答える
3

おそらく、phpmyadmin から同じユーザー名/パスワードで正常にログインしていますが、ホストが localhost でない場合、php からはログインできません。私も同じ問題を抱えていました。mysql に移動し、そのユーザーがすべてのホスト (%)、または php コードを実行する特定のホストの IP からログインする許可を与えます。

于 2012-05-03T13:15:07.350 に答える
1

ガブリエル、あなたは私を傷だらけの世界から救ってくれました。

以前、「ユーザーのアクセスが拒否されました...」という mysql エラー メッセージが表示されていました。

PHP でのリモート アクセスの問題の解決策は、cPanel '%' のすべてのホストへのアクセスを許可することでした。

また、mysql の Web ホストとポートを確認するには、データベースで sql コマンド 'show variables' を実行します。変数 'hostname' と 'port' は、mysql データベース接続について知る必要があることを示します。

注意すべきもう 1 つの点は、作成したユーザーが実際にデータベースに追加されていることを確認することです。

于 2012-07-11T12:03:34.180 に答える