簡體   English   中英

php mysqli_query用戶拒絕訪問

[英]php mysqli_query Access Denied for user

好吧,我完全被困在這里了。 我已經設置了AWS RDS(自由層)並通過mac os x終端測試了連接,我可以很好地連接。

我也可以使用php發出連接聲明(似乎可行),如下所示:

$this -> _mysqli = new mysqli( );
$this -> _mysqli -> init( );
$this -> _mysqli -> options(MYSQLI_OPT_LOCAL_INFILE, true);
$this -> _mysqli -> real_connect($host, $username, $password, $db, $port);
print_r( $this -> _mysqli );

/*print_r returns*/
mysqli Object ( 
    [affected_rows] => 0 
    [client_info] => 5.5.33 
    [client_version] => 50533 
    [connect_errno] => 0 
    [connect_error] => 
    [errno] => 0 
    [error] => 
    [error_list] => Array ( ) 
    [field_count] => 0 
    [host_info] => sadmicrowave-dev.*****.*****-****.rds.amazonaws.com via TCP/IP 
    [info] => 
    [insert_id] => 0 
    [server_info] => 5.6.13 
    [server_version] => 50613 
    [stat] => Uptime: 26448 Threads: 3 Questions: 27070 Slow queries: 0 Opens: 1962 Flush tables: 1 Open tables: 98 Queries per second avg: 1.023 
    [sqlstate] => 00000 
    [protocol_version] => 10 
    [thread_id] => 122 
    [warning_count] => 0 ) 

這似乎向我表明連接成功。 不對 在對我的設置進行了冗長的介紹之后,這里出現了我的問題。 在我的課堂的更深處,我有一個發出查詢的方法。 它看起來像這樣:

$q = mysqli_query( 
       $this -> _mysqli, 
      "LOAD DATA INFILE '$FILE'
       IGNORE INTO TABLE `php-challenge-apr-2014`
       FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
       LINES TERMINATED BY '\n'
       IGNORE 1 LINES"
);

但是此查詢返回以下錯誤(盡管我在同一個類實例中工作,這意味着在上面的connect語句中已經設置了$this -> _mysqli

Access denied for user 'sadmicrowave'@'%' (using password: YES)]"}

F到底是怎么回事?

這真是愚蠢,但我發現了我的問題,那是我忘記了LOAD DATA查詢中的local關鍵字。 如果沒有local關鍵字,MySQL服務器會認為我正在嘗試訪問服務器上而不是本地主機上的文件。 當然,在這種情況下,亞馬遜可能出於某種原因將其功能鎖定在其RDS實例上。 因此, Access Denied問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM