Подтвердить что ты не робот

Использование 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

У кого-нибудь есть какие-либо советы?

4b9b3361

Ответ 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