有這個問題了一些關於我們的準備時間,所以我我做了一個檢查清單。
這裏假設您希望phpMyAdmin使用UNIX套接字而非TCP/IP在本地連接到MySQL。
UNIX套接字應該稍微快一點,因爲它們的開銷較小,並且可以更安全,因爲它們只能在本地訪問。
服務
- 是mysqld服務運行?
service mysqld status
- ..如果不是
service mysqld start
- 自服務啓動以來,配置是否已更改?
service mysqld restart
MySQL的配置(my.cnf中)
- 檢查不存在非套接字的客戶端協議集,例如
protocol=tcp
- 檢查插座的位置是可訪問的,並具有正確的權限
PHP配置(PHP。INI)
如果你可以在本地通過命令行從phpMyAdmin的連接,而不是和套接字文件不在默認位置:
- 設置的mysqli默認插座到新的位置:
mysqli.default_socket = *location*
- ...我還設置了
pdo_myql.default_socket
和mysql.default_socket
只是爲了確保
- 重新啓動您的Web服務(在我的案件的httpd)
service httpd restart
phpMyAdmin的配置(config.inc.php中)
- 檢查主機設置爲localhost:
$cfg['Servers'][$i]['host'] = 'localhost';
- 插座的位置也可以在這裏設置:
$cfg['Servers'][$i]['socket'] = '*location*';
NB
正如@chk指出的那樣;將$cfg['Servers'][$i]['host']
從localhost
設置爲127.0.0.1
只會導致連接使用TCP/IP而不是使用套接字,而不是解決方案。
MySQL配置設置bind-address=
也隻影響TCP/IP連接。
如果您不需要遠程連接,建議關閉使用skip-networking
進行偵聽的TCP/IP。
您是否使用Cookie身份驗證?這是你在配置文件中沒有數據庫證書的地方(我認爲主機除外),並且您在Web應用程序中提供了用戶名和密碼。我相信,或者你可以在配置文件中提供憑證,並跳過登錄過程(顯然只適用於非互聯網服務器)。您可以使用您用於登錄到phpMyAdmin的憑據從mysql控制檯(/path/to/mysql.exe -u用戶名-h本地主機-p)登錄嗎? – halfer 2012-08-03 13:55:14
什麼都不會工作,我也發生同樣的錯誤,我嘗試了很多事情,但沒有運氣。我建議你將你的mysql數據文件夾保存到一些安全的地方並重新安裝phpmyadmin。它會正常工作,不要嘗試下次輸入密碼 – 2013-03-11 17:21:29
@Reddox答案解決了我的問題。也許這應該標記爲已解決。 – apis17 2013-07-26 00:20:34