2013-07-15 53 views
0

我的配置比較簡單。我有:MySQL在外部服務器上,拒絕有效用戶訪問

  • 運行API的服務器。

  • 該服務器連接到單獨服務器上的數據庫。

  • 我可以使用Sequel Pro通過SSH連接到我的PC上的數據庫到 API服務器,然後從那裏連接到數據庫服務器 。

  • 我可以手動SSH在終端到API服務器和連接到使用從MySQL命令 行相同的用戶ID和密碼的 數據庫。

然而,當我的PHP腳本試圖PDO_connect我得到....使用memcached的

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1044] Access denied for user 'validusername'@'%' to database 'live'' in /var/www/live/community/backend/lib/Db/Connection.php:27 
Stack trace: 

0 /var/www/live/community/backend/lib/Db/Connection.php(27): PDO->__construct('mysql:host=10.2...', 'validusername', 'validPass', Array) 

1 /var/www/live/community/backend/lib/Communication/Base.php(57): Changers_Db_Connection->__construct('10.248.174.31', 'live', 'validusername', 'validPass', NULL)\n 

2 /var/www/live/factory/index.php(40): Communication_Base->useSourceConnection('10.248.174.31', 'live_licence', 'validusername', 'validPass') 

3 {main}\n thrown in /var/www/live/community/backend/lib/Changers/Db/Connection.php on line 27 

Ubuntu的服務器。

我不關心錯誤的致命性,因爲系統繼續是沒有意義的。我真的需要了解爲什麼我可以通過除此之外的任何方法進行連接。

任何意見讚賞。

問候 克里斯

+0

Egen手動連接,你嘗試「使用現場」,並選擇一些東西? –

+0

是的,通過Sequal Pro和命令行我都可以完全訪問數據庫並可以選擇,插入和刪除。這只是PHP腳本被拒絕。 –

+0

那麼如果你通過SSH連接你的PC,聽起來就像你將本地端口轉發到你的PC並通過它連接到數據庫,它看起來像user @ localhost。服務器是否設置爲允許用戶@%? – mdd061000

回答

0

訪問僅限於已知的IP地址。因此,發送'validuser'@'%'是不可接受的。所有其他方法發送'validuser'@'API服務器IP地址',但PHP腳本發送'validuser'@'%'。我不是100%確定它是什麼修復它,但最後,我刪除了Symfony 2和PHP   5並重新安裝。