2012-05-03 83 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和端口號以及數據庫名稱是正確的。我設法連接到數據庫,媒體鏈接使用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爲192.168.1.1進入/主機 – Satya

+2

您是*不使用從您的主機的正確的用戶名和密碼,*或*用戶不允許訪問*。這是一個配置問題,錯誤信息告訴你你需要知道的一切。 – hakre

+0

您要麼未使用正確的用戶名和密碼,要麼所選用戶名無法訪問該主機 – Anigel

回答

3

你可能從phpMyAdmin的相同用戶名/密碼登錄成功,但能如果主機不是本地主機,請從PHP登錄。我有同樣的問題。轉到mysql並授予該用戶的權限,以便從所有主機(%)或您運行php代碼的特定主機的IP上登錄。

4

你需要做以下檢查:

  1. 檢查192.168.1.1包括在/ etc/hosts中。如果您的數據庫位於本地主機上,請嘗試使用localhost而不是ip。
  2. 檢查該端口是開放的。嘗試使用telnet(例如ip/localhost) 。例如遠程登錄本地主機2222
  3. 檢查數據庫已爲您的用戶名和密碼授予的權限。要檢查權限,請使用SHOW GRANTS [FOR user]。更多信息可以發現here 如果沒有這項工作,也許嘗試使用非默認的其他不同的用戶。
    讓我們知道會發生什麼
1

加夫列爾,你救了我一個傷害的世界。

我以前得到MySQL錯誤信息「訪問被拒絕用戶......」

在PHP我的遠程接入問題的解決方案是允許訪問中的所有主機的cPanel「%」

另外,爲了找出你的mysql虛擬主機和端口,在你的數據庫上執行sql命令'show variables'。變量'主機名'和'端口'會告訴你你需要知道的mysql數據庫連接。

另外一點需要注意的是要確保你已經創建實際上是添加到數據庫的用戶。