2012-05-03 61 views
4

我真的有一個奇怪的問題在這裏,它真的開始煩我。這是關於連接的不同行爲。我只是試圖設置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 
+0

您是否在數據庫測試中授予用戶測試權限,似乎您沒有給予任何測試用戶權限。請先爲用戶測試設置權限。 –

+0

只是傳遞一個空字符串作爲密碼呢? – kuba

+0

我通過phpMyAdmin自動創建了數據庫'測試':有一個選擇,說'創建數據庫同名,並授予它的權利'(我編輯我的帖子,你可以看到權利在底部) 。 - 是的,嘗試空字符串。這個問題似乎真的是'使用密碼:是' - 只要這是'不'它的作品。但PDO似乎總是設置活動 – Katai

回答

3

GRANT ALL ON test.* TO [email protected] IDENTIFIED BY "test";所有權利

在mysql shell中運行上面的查詢,一切都應該工作。

+0

有沒有其他解決方案?我無權這樣做。 –

+1

不幸的是,因爲問題不是與phpmyadmin它是與MySQL權限。 –

相關問題