2012-05-03 3 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(); 
    ?> 

내가 당연히 호스트의 IP 주소를 변경 (그 모든 영의)과 사용자 이름과 암호 및 데이터베이스 이름입니다. 사용자 및 암호, 호스트 IP와 포트 번호 및 데이터베이스 이름이 정확하다는 것을 확신합니다. 나는 allready JDBC 커넥터가 데이터베이스에 연결하는 데 성공하지만, PHP 스크립트를 통해 다음과 같은 오류 제공 : 당신은 아마 성공적으로 phpMyAdmin을에서 동일한 사용자 이름/암호를 사용하여 로그인하는

<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

을 할 수 있지만, 호스트가 localhost가 아닌 경우 php에서 로그인하지 마십시오. 나는 똑같은 문제가 있었다. mysql으로 가서 그 사용자가 모든 호스트 (%) 또는 php 코드를 실행하는 특정 호스트의 IP에서 로그인 할 수있는 권한을 부여하십시오.

4

는 다음과 같은 검사를 수행해야합니다

  1. 확인하는 것이 192.168.1.1은/etc/hosts 파일에 포함되어 있습니다. db가 로컬 호스트 컴퓨터에 있으면 ip 대신 localhost를 사용하십시오.
  2. 포트가 열려 있는지 확인하십시오. 텔넷 (예 : ip/localhost) 을 사용해보세요. 예 : telnet localhost 2222
  3. 데이터베이스에 사용자 이름과 암호에 대해 부여 된 권한이 있는지 확인하십시오. 특권을 확인하려면 SHOW GRANTS [FOR user]을 사용하십시오. 더 많은 정보를 찾을 수 있습니다 here 만약이 작품 중 하나도, 아마도 다른 사람이 아닌 다른 사용자를 사용해보십시오.
1

이 Gavriel, 당신은 내게 상처의 세계를 저장 한 어떻게되는지 알려주세요.

내가 이전에 MySQL의 오류 메시지 '액세스 사용자에 대한 거부 ...'지고 있다고

PHP에서 내 원격 액세스 문제에 대한 해결책은의 cPanel '%'

의 모든 호스트에 대한 액세스 권한을 부여했다 또한 mysql 웹 호스트와 포트를 파악하려면 데이터베이스에 sql 명령 'show variables'를 실행하십시오. 변수 'hostname'과 'port'는 mysql 데이터베이스 연결에 대해 알아야 할 것을 알려줍니다.

작성한 사용자를 데이터베이스에 실제로 추가했는지 확인해야합니다.

관련 문제