157 votes

Comment accéder à un serveur distant avec un client phpMyAdmin local ?

En supposant qu'il y ait un serveur distant et que le client phpMyAdmin soit installé localement sur mon ordinateur. Comment puis-je accéder à ce serveur et le gérer via le client phpMyAdmin ? Est-ce possible ?

221voto

Suresh Kamrushi Points 4371

Il suffit d'ajouter les lignes ci-dessous à votre /etc/phpmyadmin/config.inc.php dans le fond :

$i++;
$cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default
$cfg['Servers'][$i]['user'] = 'userName';   //user name for your remote server
$cfg['Servers'][$i]['password'] = 'Password';  //password
$cfg['Servers'][$i]['auth_type'] = 'config';       // keep it as config

Vous obtiendrez Current Server: avec les deux 127.0.0.1 et un ce que vous avez fourni avec $cfg['Servers'][$i]['host'] peut passer d'un serveur à l'autre.

Plus de détails : http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/

28voto

c.hill Points 888

Il est certainement possible d'accéder à un serveur MySQL distant à partir d'une instance locale de phpMyAdmin, comme l'ont souligné les autres réponses. Et pour que cela fonctionne, vous devez configurer le serveur MySQL du serveur distant pour qu'il accepte les connexions à distance et autorisez le trafic à travers le pare-feu pour le numéro de port sur lequel MySQL est écouté. Je préfère une solution légèrement différente impliquant Tunnelage SSH .

La commande suivante configure un tunnel SSH qui transmet toutes les demandes faites au port 3307 de votre machine locale au port 3306 de la machine distante :

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

Lorsque vous y êtes invité, vous devez saisir le mot de passe de l'utilisateur Root sur la machine distante. Cela ouvrira le tunnel. Si vous voulez exécuter cette opération en arrière-plan, vous devrez ajouter le paramètre -f et mettre en place SSH sans mot de passe entre votre machine locale et la machine distante.

Après avoir fait fonctionner le tunnel SSH, vous pouvez ajouter le serveur distant à la liste des serveurs dans votre phpMyAdmin local en modifiant le fichier /etc/phpmyadmin/config.inc.php dossier. Ajoutez ce qui suit à la fin du fichier :

$cfg['Servers'][$i]['verbose']       = 'Remote Server 1'; // Change this to whatever you like.
$cfg['Servers'][$i]['host']          = '127.0.0.1';
$cfg['Servers'][$i]['port']          = '3307';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysqli';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'cookie';
$i++;

J'ai écrit un article plus approfondi article de blog à ce sujet, au cas où vous auriez besoin d'aide supplémentaire.

27voto

Phil Cross Points 3712

C'est possible, mais vous devez modifier la configuration de phpMyAdmin, lisez cet article : http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin

Si, pour une raison quelconque, le lien ne fonctionne pas, vous pouvez suivre les étapes suivantes :

  • Trouvez le fichier de configuration de phpMyAdmin, appelé config.inc.php
  • Trouvez le $cfg['Servers'][$i]['host'] et définissez-la comme l'adresse IP ou le nom d'hôte de votre serveur distant.
  • Trouvez le $cfg['Servers'][$i]['port'] et définissez-la sur le port mysql distant. Habituellement, c'est 3306
  • Trouvez le $cfg['Servers'][$i]['user'] y $cfg['Servers'][$i]['password'] et définissez-les comme votre nom d'utilisateur et votre mot de passe pour le serveur distant.

Sans une configuration appropriée du serveur, la connexion peut être plus lente qu'une connexion locale ; par exemple, il serait probablement un peu plus rapide d'utiliser des adresses IP au lieu de noms d'hôtes pour éviter que le serveur n'ait à rechercher l'adresse IP à partir du nom d'hôte.

En outre, n'oubliez pas que le nom d'utilisateur et le mot de passe de votre base de données distante sont stockés en texte clair lorsque vous vous connectez de cette manière. Vous devez donc prendre des mesures pour vous assurer que personne ne peut accéder à ce fichier de configuration. Vous pouvez également laisser les variables de nom d'utilisateur et de mot de passe vides pour être invité à les saisir à chaque fois que vous vous connectez, ce qui est beaucoup plus sûr.

12voto

Dulanga Sashika Points 163

Suivez cet article de blog. Vous pouvez le faire très facilement. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

Le dossier config.inc.php contient les paramètres de configuration de votre installation de phpMyAdmin. Il utilise un tableau pour stocker des ensembles d'options de configuration pour chaque serveur auquel il peut se connecter et par défaut il n'y en a qu'un seul, votre propre machine, ou localhost. Pour vous connecter à un autre serveur, vous devez ajouter un autre ensemble d'options de configuration au tableau de configuration. Vous devez modifier ce fichier de configuration.

Première ouverture config.inc.php dossier tenu dans phpMyAdmin dossier. Dans wamp vous pouvez le trouver dans wamp \apps\phpmyadmin dossier. Puis ajoutez la partie suivante à ce fichier.

$i++;
$cfg['Servers'][$i]['host']          = 'hostname/Ip Adress';
$cfg['Servers'][$i]['port']          = '';
$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']          = 'username';
$cfg['Servers'][$i]['password']      = 'password';

Voyons la signification de ces variables.

$i++ :- Incrementing variable for each server
$cfg[‘Servers’][$i][‘host’] :- Server host name or IP adress
$cfg[‘Servers’][$i][‘port’] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306)
$cfg[‘Servers’][$i][‘socket’] :- Path to the socket (Leave a blank for default socket)
$cfg[‘Servers’][$i][‘connect_type’] :- How to connect to MySQL server (‘tcp’ or ‘socket’)
$cfg[‘Servers’][$i][‘extension’] :- php MySQL extension to use (‘mysql’ or ‘msqli’)
$cfg[‘Servers’][$i][‘compress’] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
$cfg[‘Servers’][$i][‘auth_type’] :- Method of Authentication
$cfg[‘Servers’][$i][‘username’] :- Username to the MySQL database in remote server
$cfg[‘Servers’][$i][‘password’] :- Password to the MySQL database int he remote server

Après avoir ajouté cette partie de la configuration, redémarrez votre serveur et votre page d'accueil de phpMyAdmin changera et affichera un champ pour sélectionner le serveur.

Vous pouvez maintenant sélectionner votre serveur et accéder à votre base de données distante en entrant le nom d'utilisateur et le mot de passe de cette base.

9voto

Yannickv Points 108

Comme indiqué dans la réponse c.colline réponse, si vous voulez un solution sécurisée Je vous conseille d'ouvrir un tunnel SSH vers votre serveur.

Voici la façon de le faire pour Windows utilisateurs :

  1. Téléchargez Plink et Putty à partir du site Site web de Putty et placez les fichiers dans le dossier de votre choix (Dans mon exemple C:\Putty )

  2. Ouvrez la console Windows et accédez au dossier Plink : cd C:\Putty

  3. Ouvrir le tunnel SSH et rediriger vers le port 3307 :

    plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk

Où :

  • 3307 est le port local vers lequel vous souhaitez rediriger vos données.
  • localhost est l'adresse de la base de données MySQL sur le serveur distant (localhost par défaut)
  • 3306 est le port utilisé pour PhpMyAdmin sur le serveur distant (3306 par défaut).

Enfin, vous pouvez configurer PhpMyAdmin :

  1. Ajoutez le serveur distant à votre configuration PhpMyAdmin locale en ajoutant la ligne suivante à la fin du fichier config.inc.php

Lignes à ajouter :

$i++;   
$cfg['Servers'][$i]['verbose']          = 'Remote Dev server';
$cfg['Servers'][$i]['host']             = 'localhost';
$cfg['Servers'][$i]['port']             = '3307';
$cfg['Servers'][$i]['connect_type']     = 'tcp';
$cfg['Servers'][$i]['extension']        = 'mysqli';
$cfg['Servers'][$i]['compress']         = FALSE;
$cfg['Servers'][$i]['auth_type']        = 'cookie';
  1. Vous devriez pouvoir vous connecter maintenant à http://127.0.0.1/phpmyadmin

Si vous ne voulez pas ouvrir la console à chaque fois que vous devez vous connecter à votre serveur distant, créez simplement un fichier batch (en enregistrant les 2 lignes de commande dans un fichier .bat).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X