2015-05-01 96 views
1

我已經使用openshift創建了一個免費的應用程序,並創建了MySQL和phpmyadmin盒式磁帶,並在我的phpmyadmin中爲所有用戶提供了訪問所有用戶的權限,現在問題是當我嘗試從我的本地MySQL工作臺我得到連接,但我沒有看到我的表我已經在遠程服務器上使用phpMyAdmin創建,我不能做任何行動,如創建模式或表從哪裏獲得MySql遠程服務器連接訪問被拒絕

錯誤1044:訪問被拒絕用戶'@'localhost'

請記住,我允許任何用戶擁有所有權限,但除了僅限於數據庫連接之外,我仍然拒絕訪問任何操作。

+0

你確定你爲用戶'user'增加了權限而不是'root'嗎? – John

回答

0

確保您授予用戶完全權限的用戶與MySQL Workbench所連接的用戶相同 - 例如主機%localhost之間存在差異。在MySQL Workbench中,發出「狀態」命令,並根據您配置的內容比較用戶名和主機。

你顯然是通過'localhost'連接的,所以你必須給主機localhost的匿名用戶提供完全的權限(或者把你的連接類型改爲tcp,以便你的連接通過127.0.0.1而不是localhost)。

編輯進一步說明: MySQL權限結構不同地處理不同類型的連接;通過TCP連接連接的客戶端總是看起來來自IP地址,即使它來自「本地主機」(即在同一臺計算機上),在這種情況下,傳入連接的IP地址可能爲127.0。 0.1。套接字類型連接在MySQL中註冊爲來自主機「本地主機」(字面上,在這種情況下)。這就是我們驗證MySQL Workbench連接的主機的原因。

不同的連接類型與MYSQL不同,即使它們來自同一個「本地機器」。此外,通配符主機不包含'本地主機'套接字連接,這些是'localhost'主機名在權限字段中的單獨條目;正如我上面解釋的那樣,通配符不適用。這就是我們爲什麼要檢查你對MySQL Workbench連接的權限設置的原因;這是這些困難最常見的原因。

+0

我認爲很明顯,openshift免費帳戶不允許遠程sql訪問 – user2469133

+0

如我所說的允許任何用戶沒有任何憑據的權限,除非這與openshift一起工作嗎? – user2469133

+0

對不起,我一定錯過了你說的是免費帳戶的地方,但是這實際上並不重要,因爲即使主機阻塞外部連接,MySQL權限結構也保持不變。如果您可以發佈屏幕截圖或授予的權限的SQL導出,並檢查MySQL Workbench中的「STATUS」命令,這將非常有幫助。有關更詳細的解釋,請參閱上面編輯中的信息。我無法向你保證這是正確的解決方案,因爲我還沒有足夠的信息,但目前看起來很可能是:) –