[英]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.