2012-05-03 20 views
0

データベースへの接続中にアクセス拒否エラーが発生しました。ここでは、コードは次のとおりです。PHPアクセスでMySQLデータベースに接続していません

<?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(); 
    ?> 

私は(そのすべてではないゼロの)ユーザ名とパスワードとデータベース名ofcourseのホストの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 /> 


+0

/etc/hostsに192.168.1.1のエントリがありますか? – Satya

+2

正しいユーザー名とパスワードを使用していない*または*ユーザーがホストからのアクセスを許可されていません。これは設定上の問題です。エラーメッセージには、必要な情報がすべて表示されます。 – hakre

+0

正しいユーザー名とパスワードを使用していないか、選択したユーザー名がそのホストからのアクセス権がありません – Anigel

答えて

3

あなたはおそらく成功しphpmyadminのと同じユーザー名/パスワードでログインすることができますが、されていますホストがlocalhostでない場合、phpからログインしないでください。私も同じ問題がありました。 mysqlにアクセスして、そのユーザーがすべてのホスト(%)、またはあなたのPHPコードを実行する特定のホストのIPからログインする権限を与えます。

4

次のチェックを実行する必要があります。192.168.1.1は/ etc/hostsファイルに含まれていること

  1. チェックを。 dbがローカルホストマシン上にある場合は、ipの代わりにlocalhostを使用してみてください。
  2. ポートが開いていることを確認します。 telnet(例:ip/localhost) を使用してみてください。例えばtelnet localhost 2222
  3. データベースにユーザ名とパスワードの権限が与えられているかどうかを確認してください。特権を確認するには、SHOW GRANTS [FOR user]を使用してください。さらに詳しい情報はhere のいずれでもない場合は、おそらくデフォルト以外の別のユーザーを使用してみてください。
    何が起こるか教えてください
1

ガブリエル、あなたは私に傷つく世界を救ってくれました。

I以前にMySQLエラーメッセージ「アクセスがユーザーのために拒否された...」になっていた

PHPの私のリモートアクセス問題の解決策は、cPanelの「%」内のすべてのホストへのアクセスを許可した

また、あなたのmysqlウェブホストとポートを調べるには、あなたのデータベースにsqlコマンド 'show variables'を実行してください。変数 'hostname'と 'port'はmysqlデータベース接続のために知っておくべきことを教えてくれます。

作成したユーザーが実際にデータベースに追加されていることを確認することも重要です。

関連する問題