Использование PHPMyAdmin для администрирования Amazon RDS
Я не могу заставить PHPMyAdmin подключаться к моему экземпляру RDS Amazon. Я предоставил разрешения для моего IP-адреса для группы безопасности БД, которая имеет доступ к этой базе данных, к которой я пытаюсь получить доступ. Вот что я работаю с...
$cfg['Servers'][$i]['pmadb'] = $dbname;
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
/* Uncomment the following to enable logging in to passwordless accounts,
* after taking note of the associated security risks. */
// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
/* Advance to next server for rest of config */
$i++;
}
$cfg['Servers'][$i]['auth_type'] = 'http'; //is this correct?
$cfg['Servers'][$i]['user'] = 'MASTER-USER';
$cfg['Servers'][$i]['password'] = 'MASTER-USER-PASSWORD';
$cfg['Servers'][$i]['hide_db'] = '(mysql|information_schema|phpmyadmin)';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'MY-DB.us-east-1.rds.amazonaws.com';
$cfg['Servers'][$i]['connection_type'] = 'socket';
$cfg['Servers'][$i]['port'] = PORT;
Я не уверен, что моя конфигурация верна...
Я получаю эту ошибку: #2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 110
У кого-нибудь есть какие-либо советы?
Ответы
Ответ 1
Я обнаружил, что большинство ответов в этом вопросе не имеют объяснений. Чтобы добавить RDS-сервер в phpMyAdmin, установленный в EC2, вы можете сначала войти в свой EC2 через SSH. Затем выполните следующую команду для редактирования файла конфигурации phpMyAdmin (используйте vi
, nano
или любой другой любимый инструмент для редактирования текста):
sudo vi /etc/phpMyAdmin/config.inc.php # Amazon Linux
sudo vi /etc/phpmyadmin/config.inc.php # Ubuntu Linux
Найдите следующие строки в config.inc.php
:
/*
* End of servers configuration
*/
Добавьте следующие строки выше в строку "Конец конфигурации серверов":
$i++;
$cfg['Servers'][$i]['host'] = 'xxxxx.xxxxxxxxxx.us-east-1.rds.amazonaws.com';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['verbose'] = 'YOUR_SERVER_NAME';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = TRUE;
которое YOUR_SERVER_NAME
- это имя, отображаемое в поле выбора страницы входа phpMyAdmin. Если вы удалите эту строку, все имя хоста RDS будет отображаться в окне выбора (что слишком долго, очевидно). Не забудьте сохранить config.inc.php
.
Существует несколько других настроек конфигурации, которые вы можете найти в официальной документации .
Примечание.. Другой ответ предполагает автоматический вход с предустановленным именем пользователя и паролем в файле конфигурации:
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = '__FILL_IN_DETAILS__';
$cfg['Servers'][$i]['password'] = '__FILL_IN_DETAILS__';
который является чрезвычайно опасным, если ваш phpMyAdmin открыт для публики. Вы не хотите показывать свою схему базы данных всем, не так ли? Если вы действительно хотите использовать автоматический вход в систему, убедитесь, что ваш phpMyAdmin доступен только через определенные IP-адреса.
Ответ 2
В Debian Lenny, используя phpmyadmin из репо, добавьте его в /etc/phpmyadmin/config.inc.php
$i++;
$cfg['Servers'][$i]['host'] = 'xxxxx.xxxxxxxxxx.us-east-1.rds.amazonaws.com';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = TRUE;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'xxxxxxxxxxxx';
$cfg['Servers'][$i]['password'] = 'xxxxxxxxxxxxxxxxxx';
Ответ 3
Вам нужно добавить экземпляр RDS в качестве дополнительного сервера, указанного в PHPMyAdmin, предоставив хосту PHPMyAdmin доступ к вашему экземпляру RDS.
Подробнее об этом блоге на Как удаленно управлять экземпляром RDS Amazon с помощью PHPMyAdmin:
Единственное, с чем я столкнулся, это настройка группы безопасности БД. Когда вы идете добавить доступ для CIDR/IP, он предлагает рекомендуемое значение. Потребовалось некоторое беспорядок, чтобы определить, что это значение по умолчанию не является тем, что должно быть там. Если вы не можете подключиться к своему экземпляру, когда все это сказано и сделано, обязательно дважды проверьте это значение. IP-адрес, который они предоставили, не соответствует IP-адресу, который был предоставлен нам нашим интернет-провайдером. После того, как вы создали свой экземпляр БД и настроите группу безопасности, вам выгодно идти.
Я собираюсь предположить, что у вас уже появился PHPMyAdmin. Что вам нужно сделать, так это изменить config.inc.php, чтобы распознать новый сервер.
Ответ 4
Попробуйте подключиться из командной строки mysql (http://dev.mysql.com/doc/refman/5.1/en/mysql.html) и посмотреть, что эта утилита возвращает вам. Мне было легче отлаживать этот путь.
mysql -hMY-DB.us-east-1.rds.amazonaws.com -uMASTER-USER -pPASSWORD
Если это не работает, это означает, что ваша безопасность RDS от амазонки настроена неправильно. (что является общей проблемой).
Ответ 5
sudo nano /etc/phpmyadmin/config.inc.php
--ADD LINES BELOW THE PMA CONFIG AREA AND FILL IN DETAILS--
$i++;
$cfg['Servers'][$i]['host'] = '__FILL_IN_DETAILS__';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = FALSE;
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = '__FILL_IN_DETAILS__';
$cfg['Servers'][$i]['password'] = '__FILL_IN_DETAILS__';
Сохранить и выйти. Обновите страницу phpmyadmin, и вы увидите раскрывающееся меню с сервером, который вы только что добавили ![введите описание изображения здесь]()
Источник: https://github.com/andrewpuch/phpmyadmin_connect_to_rds, https://www.youtube.com/watch?v=Bz-4wTGD2_Q
Ответ 6
У меня была такая же проблема, и ничего из этого не разрешило.
Как оказалось, дело было в опции "Доступно публично" экземпляра RDS. Когда вы создаете свой экземпляр, по умолчанию этот параметр "нет", и вы не можете его изменить.
Однако после создания экземпляра RDS вы можете сделать его моментальный снимок, затем удалить экземпляр и запустить заставку. В параметрах запуска просто установите "Доступно для общественности" на "да", и ваш phpMyAdmin, наконец, увидит вас на сервере RDS MySql.
Остерегайтесь того, что DNS исходного экземпляра RDS и моментального снимка различны, поэтому вам придется изменить свой "хост" в файле config.inc.php
Приветствия:)
Ответ 7
Я использую оболочку ubuntu для доступа к Amazon RDS.
прежде всего, перейдите к корню ubuntu
sudo -i
для этого используйте URL-адрес конечного пользователя Amazon RDS
mysql -h gelastik.cqtbtepzqfhu.us-west-2.rds.amazonaws.com -u root -p