web-dev-qa-db-fra.com

Transfert de port pour se connecter à la base de données MySQL de VirtualBox

J'ai Ubuntu 10.04 en tant que hôte machine et Ubuntu 10.10 en tant que invité machine installée dans VirtualBox.

J'ai réussi à transférer les ports pour me connecter à Apache de la machine invitée, de sorte que je puisse maintenant ouvrir des sites Web de machine hôte publiés sur le serveur Web (Apache) de la machine invitée.

Je dois faire la même chose avec MySql, c’est-à-dire accéder à MySql de invité machine à partir de hôte machine.

Afin d’atteindre cet objectif, j’exécute les commandes suivantes dans la machine Host:

VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/HostPort" 3307
VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/GuestPort" 3306
VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/Protocol" TCP

Ubuntu est le nom de la machine hôte.

La machine invité se charge et lorsque je tente de me connecter à MySql à partir de la machine hôte, il ne peut pas s'y connecter.

Quel pourrait être le problème ici?

Je vous remercie.

7
Bakhtiyor

Choses à vérifier:

  1. Quelle est la valeur du champ "Host" pour votre utilisateur MySQL? S'il s'agit de localhost ou similaire, le serveur MySQL refuse l'accès car vous vous connectez à partir d'une machine externe. Définissez le champ Host sur % pour autoriser les connexions à partir de n’importe quelle adresse IP (bien que, de toute évidence, ne l’utilisez jamais dans un environnement de production où guest accepte les connexions à partir d’Internet).

  2. Votre serveur MySQL est-il configuré pour autoriser les connexions à distance? Ouvrez /etc/mysql/my.cnf et vérifiez que votre bind-address est défini sur l'adresse IP privée de la machine invité. Assurez-vous également que votre paramètre port correspond à tout ce que vous essayez de connecter.

Au-delà de cela, vous devrez publier des journaux ou des informations de connexion afin que nous puissions examiner de plus près le problème.

13
ayan4m1

Au lieu d'utiliser le transfert de port pour chaque application, vous pouvez utiliser le "réseau ponté" pour votre système d'exploitation invité. Vous pouvez ainsi affecter une adresse IP avec le même masque de sous-réseau que votre système hôte. Par exemple, si l'adresse IP de votre système hôte est 192.168.0.10, après avoir activé le réseau ponté, vous pouvez également attribuer une adresse IP similaire à l'invité, par exemple 192.168.1.11. Ainsi, vous pouvez accéder à tous les services fonctionnant sur invité normalement. Lisez le lien ci-dessous pour plus d'informations sur la configuration d'un réseau ponté. C'est une tâche facile ne prendra pas plus de 2 minutes.

http://www.virtualbox.org/manual/ch06.html

1
aneeshep