Portweiterleitung zur Verbindung mit der MySQL-Datenbank von VirtualBox


7

Ich habe Ubuntu 10.04 als Host- Computer und Ubuntu 10.10 als Gast- Computer in VirtualBox installiert.

Ich hatte Erfolg bei der Portweiterleitung, um eine Verbindung zu Apache des Gastcomputers herzustellen, sodass ich jetzt auf Hostcomputer-Websites öffnen kann, die auf dem Webserver (Apache) des Gastcomputers veröffentlicht wurden.

Ich brauche das gleiche mit MySql, dh Zugang MySql von dem tun Gastmaschine von Host - Maschine.

Um dieses Ziel zu erreichen, führe ich folgende Befehle auf dem Host- Computer aus:

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

Dabei ist Ubuntu der Name des Host-Computers.

Der Gastcomputer wird geladen, und wenn ich versuche, vom Hostcomputer aus eine Verbindung zu MySql herzustellen, kann keine Verbindung hergestellt werden.

Was könnte hier das Problem sein?

Vielen Dank.


Können Sie die von Ihnen verwendeten MySQL-Verbindungseinstellungen hinzufügen? So können wir Ihnen weiterhelfen.
Huygens

"... wobei Ubuntu der Name des Host-Rechners ist." Ähm, nein, Sie bearbeiten die Konfiguration des Gastcomputers. Dies bedeutet, dass Ihr 10.04 MySQL-Client eine Verbindung zum lokalen Host-Port 3307 herstellen muss, um mit dem Gast-Port 3306 zu kommunizieren.
Steve Beattie

Antworten:


13

Dinge zu überprüfen:

  1. Was ist das Feld "Host" für Ihren MySQL-Benutzer? Wenn dies localhostder Fall ist oder nicht, verweigert der MySQL-Server den Zugriff, da Sie eine Verbindung von einem externen Computer aus herstellen. Ändern Sie das Hostfeld so %, dass Verbindungen von einer beliebigen IP-Adresse zugelassen werden (obwohl dies offensichtlich niemals in einer Produktionsumgebung verwendet wird, in der der Gast Verbindungen aus dem Internet akzeptiert).

  2. Ist Ihr MySQL-Server so eingerichtet, dass Remoteverbindungen möglich sind? Öffnen Sie /etc/mysql/my.cnfund stellen Sie sicher , dass Ihr bind-addressan die private IP des gesetzt Gast Maschine. portStellen Sie außerdem sicher, dass Ihre Einstellung mit der Einstellung übereinstimmt, mit der Sie eine Verbindung herstellen möchten.

Darüber hinaus müssen Sie Protokolle oder Verbindungsinformationen veröffentlichen, damit wir das eigentliche Problem genauer untersuchen können.


Du hast vollkommen recht. Ich habe die Bindungsadresse kommentiert und auch die MySQL-Datenbank so konfiguriert, dass Verbindungen von jeder IP-Adresse zugelassen werden. Vielen Dank für den Vorschlag.
Bakhtiyor

Ich bin froh, dass es gelöst wurde. Genießen!
ayan4m1

1

Anstatt die Portweiterleitung für jede Anwendung zu verwenden, können Sie das "Bridged Networking" für Ihr Gastbetriebssystem verwenden. Damit können Sie eine IP mit derselben Subnetzmaske wie Ihr Hostsystem zuweisen. Wenn die IP-Adresse Ihres Host-Systems beispielsweise 192.168.0.10 lautet, können Sie nach dem Aktivieren des Bridged-Netzwerks dem Gast auch eine ähnliche IP-Adresse zuweisen, z. B. 192.168.1.11. Somit können Sie wie gewohnt auf alle Dienste zugreifen, die auf dem Gast ausgeführt werden. Lesen Sie den folgenden Link, um weitere Informationen zum Einrichten eines überbrückten Netzwerks zu erhalten. Es ist eine einfache Aufgabe, die nicht länger als 2 Minuten dauert.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.