web-dev-qa-db-fra.com

Comment accéder au serveur distant avec le client phpMyAdmin local?

En supposant qu'il existe 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? 

108
MichalB

Ajoutez simplement les lignes ci-dessous à votre fichier «config.inc.php» dans le bas:

$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 le menu déroulant «Serveur actuel:» avec «127.0.0.1» et un que vous avez fourni avec le commutateur de came «$ cfg ['Servers'] [$ i] ['Host']» entre les serveurs.

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

137
Suresh Kamrushi

Cela peut être fait, mais vous devez changer la configuration de phpMyAdmin, lisez ce post: http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin

Si, pour une raison quelconque, le lien meurt, vous pouvez utiliser les étapes suivantes:

  • Recherchez le fichier de configuration de phpMyAdmin, appelé config.inc.php
  • Recherchez la variable $cfg['Servers'][$i]['Host'] et définissez-la sur l'adresse IP ou le nom d'hôte de votre serveur distant.
  • Recherchez la variable $cfg['Servers'][$i]['port'] et définissez-la sur le port mysql distant. C'est généralement 3306
  • Recherchez les variables $cfg['Servers'][$i]['user'] et $cfg['Servers'][$i]['password'] et définissez-les avec votre nom d'utilisateur et votre mot de passe pour le serveur distant.

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

De plus, rappelez-vous que le nom d'utilisateur et le mot de passe de votre base de données distante sont stockés en texte brut lorsque vous vous connectez de cette manière. Vous devez donc prendre des mesures pour vous assurer que personne ne pourra 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écurisé.

21
Phil Cross

Il est certainement possible d’accéder à un serveur MySQL distant à partir d’une instance locale de phpMyAdmin, comme l’ont indiqué les autres réponses. Et pour que cela fonctionne, vous devez configurer le serveur MySQL du serveur distant de manière à accepter les connexions distantes }, et autoriser le trafic via le pare-feu pour le numéro de port écouté par MySQL. Je préfère une solution légèrement différente impliquant SSH Tunneling .

La commande suivante va configurer un tunnel SSH qui transmettra toutes les demandes effectuées au port 3307 de votre ordinateur local au port 3306 de l'ordinateur distant:

ssh -NL 3307:localhost:3306 root@REMOTE_Host

Lorsque vous y êtes invité, vous devez entrer le mot de passe de l'utilisateur root sur la machine distante. Cela ouvrira le tunnel. Si vous souhaitez exécuter cela en arrière-plan, vous devez ajouter l'argument -f et configurer SSH sans mot de passe entre votre ordinateur local et l'ordinateur distant.

Une fois que le tunnel SSH est opérationnel, vous pouvez ajouter le serveur distant à la liste des serveurs de votre phpMyAdmin local en modifiant le fichier /etc/phpmyadmin/config.inc.php. 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 de blog plus détaillé à ce sujet, au cas où vous auriez besoin d'une aide supplémentaire.

17
c.hill

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

Le fichier config.inc.php contient les paramètres de configuration de votre installation 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, votre propre ordinateur ou localhost. Pour vous connecter à un autre serveur, vous devez ajouter un autre ensemble d'options de configuration au tableau de configuration. Vous devez éditer ce fichier de configuration.

Commencez par ouvrir le fichier config.inc.php situé dans le dossier phpMyAdmin. Sur le serveur wamp, vous pouvez le trouver dans le dossier wamp\apps\phpmyadmin. Ajoutez ensuite 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 quel est le sens 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. Votre page d'accueil phpMyAdmin va maintenant changer et un champ pour sélectionner le serveur s'affichera. 

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

11
Dulanga Sashika

Comme indiqué dans la réponse c.hill answer, si vous voulez une solution sécurisée , je vous conseillerais d'ouvrir un tunnel SSH sur votre serveur.

Voici comment procéder pour les utilisateurs de Windows:

  1. Téléchargez Plink et PuTTY depuis le site 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. Ouvrez le tunnel SSH et redirigez 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 que vous souhaitez rediriger
  • 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 locale PhpMyAdmin en ajoutant la ligne suivante à la fin de 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 souhaitez pas ouvrir la console chaque fois que vous devez vous connecter à votre serveur distant, créez simplement un fichier de traitement par lots (en enregistrant les 2 lignes de commande dans un fichier .bat).

8
Yannickv

Vous pouvez définir le fichier config.inc.php de votre installation phpMyAdmin.

$cfg['Servers'][$i]['Host'] = '';
6
oo_miguel

J'aurais ajouté ceci comme commentaire, mais ma réputation n'est pas encore assez élevée.

Sous la version 4.5.4.1deb2ubuntu2, et je devine toutes les autres versions 4.5.x ou plus récentes. Il n'est pas du tout nécessaire de modifier le fichier config.inc.php. Au lieu de cela, allez dans un répertoire de plus conf.d.

Créez un nouveau fichier avec l'extension ".php" et ajoutez les lignes. Il s’agit d’une approche plus modulaire qui isole les informations d’accès de chaque serveur de base de données distant. 

4
Ken

Sous Ubuntu

Il vous suffit de modifier un seul fichier du dossier PHPMyAdmin, par exemple «config.inc.php». Il vous suffit d’ajouter les lignes ci-dessous à votre «config.inc.php».

Emplacement du fichier: /var/lib/phpmyadmin/config.inc.php OR /etc/phpmyadmin/config.inc.php

Peut-être que vous n'avez pas la permission de modifier ce fichier, donnez-la simplement en utilisant cette commande

Sudo chmod 777 /var/lib/phpmyadmin/config.inc.php

OU (dans différents systèmes, vous devrez peut-être vérifier auprès de ces deux sites)

Sudo chmod 777 /etc/phpmyadmin/config.inc.php

Puis copiez et collez le code dans votre fichier config.inc.php

    $i++;
    $cfg['Servers'][$i]['auth_type']     = 'cookie';
    $cfg['Servers'][$i]['verbose'] = 'Database Server 2';
    $cfg['Servers'][$i]['Host'] = '34.12.123.31';
    $cfg['Servers'][$i]['connect_type']  = 'tcp';
    $cfg['Servers'][$i]['compress']      = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

Et apportez les modifications appropriées avec les détails de votre serveur

2
byteC0de

Allez dans fichier\phpMyAdmin\config.inc.php tout en bas, modifiez les détails de l'hébergement tels que l'hôte, le nom d'utilisateur, le mot de passe, etc.

1
Patrick R

Méthode 1 (pour multiserveur)

Tout d’abord, faisons une sauvegarde de la configuration originale.

Sudo cp /etc/phpmyadmin/config.inc.php      ~/ 

Maintenant, dans / usr/share/doc/phpmyadmin/exemples/, vous verrez un fichier config.manyhosts.inc.php. Copiez simplement dans / etc/phpmyadmin/ En utilisant la commande ci-dessous:

Sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
        /etc/phpmyadmin/config.inc.php

Editez le config.inc.php

Sudo nano /etc/phpmyadmin/config.inc.php 

Rechercher :

$hosts = array (
    "foo.example.com",
    "bar.example.com",
    "baz.example.com",
    "quux.example.com",
);

Et ajoutez votre sauvegarde d'IP ou de nom d'hôte (dans nano CTRL + X, appuyez sur Y) et quittez. Terminé

Méthode 2 (serveur unique) Modifiez le fichier config.inc.php 

Sudo nano /etc/phpmyadmin/config.inc.php 

Rechercher :

/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['Host'] = $dbserver;

if (!empty($dbport) || $dbserver != 'localhost') {
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['port'] = $dbport;
}

Et remplacez par:

$cfg['Servers'][$i]['Host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';

Rappelez-vous de remplacer 192.168.1.100 par votre propre serveur ip mysql.

Désolé pour mon mauvais anglais (google translate blâmer: D)

0
Cornea Valentin