2014-04-23 134 views
1

我收到此登錄錯誤:Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'user'@client-ip' (using password: YES) inMySQL登錄錯誤警告

無論我在Cpanel中設置了什麼,都會發生這種情況。我已重置密碼,創建具有所有權限的新用戶。

我並不熟悉Cpanel,但已經爲db用戶創建和重置用戶密碼。

使用Cpanel ...不具有主機訪問權限。只是FTP訪問和訪問交友/ phpMyAdmin的

我已經找了又找,它只是似乎這可能是一個安裝與權限表或類似的東西的問題... https://dev.mysql.com/doc/refman/5.1/en/access-denied.html

不知道如果我可以訪問控制檯。

這裏是我的,爲了參考PHP:

// try connect to the MySQL database 
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 
// var to check for duplicate txn - default false 
$exists = false; 
// check connection to database 
if ($mysqli->connect_errno) { // false - database doesn't exist 
    $error = $mysqli->connect_errno; 
} else { // database exists 
     $res = $mysqli->query("SELECT * FROM paypal_txn_log WHERE txn_id = '$txn_id'"); 
     $exists = $res->num_rows; 
     // doesn't exist insert transaction number entry 
     if (!$exists) { 
      $time = date('Y-m-d H:i:s'); 
      $query = "INSERT INTO paypal_txn_log (txn_id, customer_email, datetime) VALUES ('$txn_id', '$payer_email', '$time')"; 
      $mysqli->query($query); 
      $mysqli->close(); 
     } 
} 
+1

您的代碼(最有可能)開放給SQL注入。請不要將變量直接粘貼到查詢中,而是使用預準備語句和綁定變量。 – h2ooooooo

+0

您已創建用戶,數據庫並重置密碼。在cPanel中,我經常忽略的一件事是在該特定數據庫上授予特定用戶權限。 [cPanel文檔](http://docs.cpanel.net/twiki/bin/view/AllDocumentation/CpanelDocs/MySQLDatabases)。 – jonnu

+0

另外,你在'client-ip'連接 - 確保你在該IP上授予,而不是'localhost'!或者,授予'%'。 – jonnu

回答

0

MYSQL讓本地和遠程用戶之間的差異。

GRANT <some privileges> TO '<username>' ON <database>.<table> ... 

只會授予該通過套接字

GRANT <some privileges> TO '<username>'@'<some ip>' ON <database>.<table> ... 

跟MySQL將允許通過TCP/IP從該IP

GRANT <some privileges> TO '<username>'@'%' ON <database>.<table> ... 

連接用戶將允許用戶連接訪問本地用戶從mysql shell的每個

,你將不得不運行

FLUSH PRIVILEGES 

使WITH GRANT有效

至於cPanel和phpmyadmin的推移(其中CPAL使用)所作的更改,這些框架自動完成的最後一步,如果你添加一個用戶。

+0

託管服務提供商提供了一些東西。不知道發生了什麼,但問題已解決。 –