2010-12-09 35 views
22

Je n'arrive pas à obtenir PHPMyAdmin pour me connecter à mon instance Amazon RDS. J'ai accordé des autorisations pour mon adresse IP au groupe de sécurité DB qui a accès à cette base de données à laquelle j'essaie d'accéder. Voici ce que je travaille avec ...Utilisation de PHPMyAdmin pour administrer Amazon RDS

$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; 

Je ne sais pas si ma configuration est correcte ...

Je reçois cette erreur: #2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 110

Quelqu'un a des conseils ?

Répondre

16

je trouve la plupart des réponses dans cette explication de l'absence de question.Pour ajouter un serveur RDS dans phpMyAdmin installé dans EC2, vous pouvez d'abord vous connecter à votre EC2 via SSH. Ensuite, exécutez la commande suivante pour modifier le fichier de configuration de phpMyAdmin (utilisation vi, nano ou tout autre outil d'édition de texte préféré):

sudo vi /etc/phpMyAdmin/config.inc.php # Amazon Linux 
sudo vi /etc/phpmyadmin/config.inc.php # Ubuntu Linux 

Trouvez les lignes suivantes dans config.inc.php:

/* 
* End of servers configuration 
*/ 

Append la lignes suivantes ci-dessus la ligne "Fin de la configuration des serveurs":

$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; 

dont YOUR_SERVER_NAME est le nom affiché dans la boîte de sélection de la page de connexion de phpMyAdmin. Si vous supprimez cette ligne, tout le nom d'hôte RDS sera affiché dans la boîte de sélection (qui est trop longue, évidemment). N'oubliez pas de sauvegarder le config.inc.php.

Il existe plusieurs autres paramètres de configuration, dont vous pouvez trouver les détails dans official documentation.


Note: L'autre réponse suggère la connexion automatique avec le nom d'utilisateur prédéfini & mot de passe dans le fichier de configuration:

$cfg['Servers'][$i]['auth_type']  = 'config'; 
$cfg['Servers'][$i]['user']   = '__FILL_IN_DETAILS__'; 
$cfg['Servers'][$i]['password']  = '__FILL_IN_DETAILS__'; 

qui est extrêmement dangereux si votre phpMyAdmin est exposé au public. Vous ne voulez pas montrer le schéma de votre base de données à tout le monde, n'est-ce pas? Si vous voulez vraiment utiliser la connexion automatique, assurez-vous que votre phpMyAdmin est accessible uniquement via des adresses IP spécifiques.

13

Vous devez ajouter l'instance RDS en tant que serveur supplémentaire répertorié sur PHPMyAdmin tout en accordant l'accès PHPMyAdmin hôte à votre instance RDS.

Plus de détails de ce billet de blog sur How to remotely manage an Amazon RDS instance with PHPMyAdmin:

The one thing I had trouble with was the DB Security Group setup. When you go to add access for an CIDR/IP it provides a recommended value. It took some messing around to determine that this default value isn’t actually what needed to be there. If you’re not able to connect to your instance when it’s all said and done, be sure to double check this value. The IP they provided did not match the IP address that was provided to us by our ISP. Once you’ve created your DB Instance and setup the security group you’re good to go.

I’m going to assume you’ve already got PHPMyAdmin up and running. What you need to do is modify config.inc.php to recognize the new server.

+15

S'il vous plaît ne pas simplement poster des liens comme réponse. Afficher la réponse sous forme de texte et, si nécessaire, fournir le lien pour plus d'explications. De cette façon, si le lien tombe en panne, la réponse sera toujours là. –

+2

J'ai ajusté mon message – Webnet

+0

Si votre RDS est dans un VPC En ce qui concerne les groupes de sécurité, AWS a un tutoriel sur la connexion de EC2 à RDS dans un VPC ici: http://docs.aws.amazon.com /AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html En particulier, vous devez modifier la règle entrante du groupe de sécurité VPC pour ajouter l'ID du groupe de sécurité dans lequel se trouve votre instance EC2 (ou, si vous n'utilisez pas EC2, l'adresse IP du serveur que vous voulez accéder au RDS) – Baxny

8

Essayez de vous connecter à partir de la ligne de commande mysql (http://dev.mysql.com/doc/refman/5.1/en/mysql.html) et voyez à quoi sert cet utilitaire. J'ai trouvé qu'il est plus facile de déboguer de cette façon.

mysql -hMY-DB.us-east-1.rds.amazonaws.com -uMASTER-USER -pPASSWORD 

Si cela ne fonctionne pas, cela signifie que votre sécurité RDS amazon n'est pas configurée correctement. (qui est le problème commun).

+0

L'utilisation d'un groupe de sécurité incompatible provoquera cela, merci. – SleighBoy

+0

Cela m'a aidé à éliminer RDS, nom d'hôte, nom d'utilisateur et mot de passe. Malheureusement, peu importe comment je configure ma config je reçois toujours # 2002 – trex005

21

Dans Debian Lenny utilisant le phpmyadmin du repo ajouter à /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'; 
+2

J'ai trouvé que la spécification du port a causé une erreur de connexion. Vous pouvez également utiliser le cookie 'auth_type' et ne pas spécifier l'utilisateur et le mot de passe. – icc97

0

J'ai eu le même problème et rien de ce qui précède résolu. Comme il s'est avéré que le truc était dans l'option "Publicly Accessible" de l'instance RDS. Lorsque vous créez votre instance, cette option est "non" par défaut et il n'y a pas d'endroit où vous pouvez le changer. Toutefois, après la création de l'instance RDS, vous pouvez créer son snapshot, puis supprimer l'instance et lancer l'instantané. Dans les options de lancement, réglez "Publicly Accessible" sur "yes" et votre phpMyAdmin verra enfin votre serveur MySQL RDS.

Méfiez-vous que le serveur DNS de l'instance RDS d'origine et le snaphot sont différents de sorte que vous devrez changer votre « hôte » dans config.inc.php

cheers :)

-1

J'utilise shell pour l'accès ubuntu Amazon RDS. d'abord aller à la racine ubuntu

sudo -i 

faire cette utilisation amazon URL de l'utilisateur final RDS

mysql -h gelastik.cqtbtepzqfhu.us-west-2.rds.amazonaws.com -u root -p 
4
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__'; 

Enregistrer et quitter. Rafraîchissez votre page phpmyadmin et vous verrez un menu déroulant avec le serveur que vous venez d'ajouter enter image description here

Source: https://github.com/andrewpuch/phpmyadmin_connect_to_rds, https://www.youtube.com/watch?v=Bz-4wTGD2_Q

0

Tout d'abord, essayez ceci:

mysql -h xxxxx.xxxxxxx.xx-xx-2.rds.amazonaws.com -u root -p // Votre serveur RDS. S'il attend et ne demande pas le mot de passe, vous devez vérifier le groupe de sécurité et ajouter 3306 sortant à votre niveau Web.