2008-10-29 67 views
1

MySQL試圖訪問使用PHP-mysqli的數據庫時出現錯誤「Access denied for user 'xxx'@'yyy'」,並且在使用命令行mysql工具時使用的用戶名,密碼,套接字,數據庫和主機完全正常工作時,可能存在什麼原因?
更新:
的確有三個用戶在mysql.user表,每一個具有不同的主機(但具有相同的哈希密碼),一個被設置爲localhost,一到127.0.0.1,一個機器的主機名稱。刪除它們中的兩個並將第三個主機改爲「%」只有一個作用:現在訪問也被使用命令行工具拒絕。 我做一個MySQL身份驗證錯誤的原因:「訪問拒絕用戶xxx'@'yyy'」?

select user(); 
之前,在命令行

,並取得了那名在PHP否認同XXX @ YYY。

+0

你使用的是什麼確切的命令行? – 2008-10-29 10:11:48

回答

3

如果任何人的興趣依舊:我從來沒有解決這個特定的問題。看起來問題出在我運行MySQL的硬件上。從那以後,我從來沒有見過像這樣的東西。

5

有時在PHP/MySQL的存在是在MySQL本地主機,127.0.0.1

之間的差異授予基於主機名訪問,localusers這將是localhost。 我已經看到php嘗試連接'myservername'而不是本地主機allthough在配置'localhost'被定義。

嘗試授予在MySQL 127.0.0.1訪問,並在PHP在127.0.0.1端口連接3306

0

我看了你更新後我會在/懷疑是錯誤的密碼。 你在你的PW中使用「奇怪的」字符(可能導致utf-8/iso編碼問題的東西)?

在主機字段中使用%將允許用戶從任何主機連接。所以唯一可能會出錯的是密碼。

你可以創建另一個用戶嗎?如果「全部授予'''''''由'somesimplepw''語法確定,並嘗試與該用戶連接? 不要忘記「沖水privelidges」

有關信息如何創建新的用戶克利克here

+0

特權(拼寫) – glyph 2013-11-21 17:41:12

0

今天我的虛擬主機提供商的FTP服務有一些麻煩,所以我決定實現一個本地虛擬網絡服務器在我的網站上工作。我已經用phpMyAdmin安裝了EasyPHP 14.1,並且已經創建了我的用戶和我的數據庫。

第一次嘗試:失敗。我意識到我所尋找的桌子並不存在。 - >我解決了創建缺少的表。

第二次嘗試:失敗。我意識到我爲我的新用戶設置的用戶名與我用於連接的用戶名不同。 - >我編輯了用戶名。

第三次嘗試:失敗。我意識到新的數據庫名稱與我在網站中用於連接的數據庫名稱不同。 - >我編輯了數據庫名稱。

第四次嘗試:失敗。我意識到,我的新用戶的特權之間沒有「格蘭特」。我甚至不知道「Grant」是什麼意思,但讓我們嘗試啓用它 - >添加「授予」特權。

第五次嘗試:我贏了!

我希望我的小冒險可以幫助別人。 =)

相關問題