我真的有一個奇怪的問題在這裏,它真的開始煩我。這是關於連接的不同行爲。我只是試圖設置CakePHP,但PDO無法與mysql服務器保持一致。 Okey,一步一步:這是一臺全新的電腦,我剛剛安裝了XAMPP(在Win7上)並下載了CakePHP。沒有別的事情做完了。在phpMyAdmin上,我用PW'test'創建了一個用戶「測試」,並擁有數據庫「測試」。很簡單,對吧?PDO無法連接,但mysql_connect可以(沒有PW)
在這裏,用戶/權限表的phpMysqlAdmin行:現在
User Host Password Global Rights GRANT
test % Yes USAGE No
,到了真正的問題:
這工作:
$link = mysql_connect('localhost', 'test'); //<- not using the 3. parameter, 'password'
但是,什麼應該工作,不:
$link = mysql_connect('localhost', 'test', 'test'); //<- using the 3. parameter, 'password'
而且因爲我似乎無法「刪除」的「使用密碼:YES」爲PDO的,我不能與PDO的可以連接(和蛋糕使用PDO的):
$dbh = new PDO('mysql:host=localhost;dbname=test', 'test', 'test');
錯誤消息:
錯誤!:SQLSTATE [28000] [1045]訪問被拒絕的用戶 '測試' @ 'localhost' 的(使用密碼:YES)
它不能這麼複雜,我只是想連接到一個新安裝的DB,具有正確的憑據。我究竟做錯了什麼?我閱讀了許多類似的問題,但沒有找到解決我自己的問題。
是的,密碼真的是'測試' - 我不知道爲什麼mysql_connect()whitout PW可以連接 - 默認使用用戶名作爲PW嗎?
這真的不能是硬
感謝您的幫助, 祝你美好的一天。
EDIT(回答問題)
這裏的DB權利的條目(在用戶:測試): - 用戶似乎真的有DB '測試'
Database Rights GRANT
test ALL PRIVILEGES Nein
您是否在數據庫測試中授予用戶測試權限,似乎您沒有給予任何測試用戶權限。請先爲用戶測試設置權限。 –
只是傳遞一個空字符串作爲密碼呢? – kuba
我通過phpMyAdmin自動創建了數據庫'測試':有一個選擇,說'創建數據庫同名,並授予它的權利'(我編輯我的帖子,你可以看到權利在底部) 。 - 是的,嘗試空字符串。這個問題似乎真的是'使用密碼:是' - 只要這是'不'它的作品。但PDO似乎總是設置活動 – Katai