2013-12-21 30 views
1

我有一個新的EC2/RDS設置。我遵循了5個不同的指南,但無法獲得phpMyAdmin的連接。phpMyAdmin無法連接到來自EC2機器的RDS,出於想法

首先,這不是安全組問題。我暫時設置RDS服務器接受所有連接。我可以從命令行使用mysql從EC2機器連接到它。

我從EPEL回購安裝了phpMyAdmin。

我已經四次檢查了我的config.inc.php文件。我相信它會被正確設置。

$i++; 
$cfg['Servers'][$i]['host']   = 'xxx.us-west-1.rds.amazonaws.com'; // MySQL hostname or IP address 
$cfg['Servers'][$i]['port']   = '3306';  // MySQL port - leave blank for default port 
$cfg['Servers'][$i]['socket']  = '';   // Path to the socket - leave blank for default socket 
$cfg['Servers'][$i]['connect_type'] = 'tcp';  // How to connect to MySQL server ('tcp' or 'socket') 
$cfg['Servers'][$i]['extension']  = 'mysqli'; // The php MySQL extension to use ('mysql' or 'mysqli') 
$cfg['Servers'][$i]['compress']  = FALSE;  // Use compressed protocol for the MySQL connection 
                // (requires PHP >= 4.3.0) 
$cfg['Servers'][$i]['controluser'] = '';   // MySQL control user settings 
                // (this user must have read-only 
$cfg['Servers'][$i]['controlpass'] = '';   // access to the "mysql/user" 
                // and "mysql/db" tables). 
                // The controluser is also 
                // used for all relational 
                // features (pmadb) 
$cfg['Servers'][$i]['auth_type']  = 'cookie'; 

不過,每次我試圖使用phpMyAdmin連接時,我得到錯誤#2003無法登錄到MySQL服務器

我真的沒了主意。我卸載了phpmyadmin並嘗試將所有文​​件手動放入html目錄中,結果相同。我試過改變配置文件中的大部分設置(壓縮,連接類型,auth_type),沒有運氣。我無法相信我一直試圖讓phpMyAdmin現在工作2.5小時不成功。不知道發生了什麼事,所有的網絡搜索都幹了...似乎我是唯一有這個問題的人。

如果任何人有任何想法可以幫助我弄清楚這一點,我會欣賞它。

+1

嗨,在http://www.phpmyadmin.net/home_page/support.php我們提到這種問題應該去serverfault.com。 –

+1

MySQL服務器日誌顯示嘗試連接嗎?你有沒有MySQL命令行工具來嘗試連接,例如,mysql -u root -p -h xxx.us-west-1.rds.amazonaws.com? –

回答

0

您可以嘗試在phpMyAdmin配置中添加以下設置並重試嗎?

$cfg['Servers'][$i]['user'] = 'root'; //mysql username here 
$cfg['Servers'][$i]['password'] = 'password'; //mysql password here 
+0

因爲Pez的auth_type已經是cookie了,所以我不確定這會有什麼不同。用戶和密碼字段僅用於auth_type配置。 –

0

謝謝你的回覆。

對於因爲他們遇到同樣問題而發現此討論的任何人,Isaac Bennetch留下的有用評論可幫助您調試您的問題。

對我來說,我無法解決,但最終由於不同的原因,我開始了另一個EC2實例,這次phpMyAdmin立即工作。我不知道我的問題是什麼,但希望沒有其他人面對類似的問題。

0

有點晚了,但也許這會幫助別人。我遇到了同樣的問題,我只需要確保MySQL端口對於RDS的安全組是開放的。 ..worked我

2

都需要解決這個事情夫婦 - 在config.inc.php中一個變化,在MySQL用戶的表的另一個變化,另一個在AWS控制檯上...

首先 /etc/phpMyAdmin/config.inc.php中的主機應該分配給內部私有IP,而不是外部私有IP。可以從AWS控制檯頁面 - 儀表板 - > EC2 - >實例中選取內部的一個。選擇右側的實例並在描述選項卡中查看專用IP字段,然後在config.inc中編輯以下行。PHP

$cfg['Servers'][$i]['host'] = xx.yy.zz.aa 

- MySQL需要知道root登錄請求,從phpMyAdmin的網頁來實際上是從一個AWS內部IP地址 - 與上述相同,而不是外部的一個所描述的IP - 所以你需要更新MySQL數據庫的「用戶」表使用GRANT命令

mysql -u root -p 

use mysql 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'xx.yy.zz.aa' IDENTIFIED BY 'xxpassword'; 

與EC2 提供內部ip地址替換xx.yy.zz.aa如下用你的root密碼爲MySQL

更換xxpassword

重啓Apache,你應該是不錯的:)

- 允許MYSQLPORT所使用的安全組中傳入的連接......這是AWS控制檯上進行。

Type = MYSQL 
Protocol = TCP 
Port = 3306 
Source = 0.0.0.0/0 
+0

這是正確的。 AWS將使用您需要在RDS上允許的私有IP地址 – KNOWARTH