Zugriff auf MySQL Server über VirtualBox

20

Ich versuche, den MySQL-Server (der sich in der VM befindet) dazu zu bringen, auf den Client (der sich auf dem Hostcomputer befindet) zu reagieren. Alle Methoden geben dasselbe zurück:

Host '10.0.2.2' is not allowed to connect to this MySQL server

Ich habe für die richtige Portweiterleitung gesorgt. Ich habe auch darauf geachtet, dass my.cnfich folgende Zeilen habe:

skip-external-locking
bind-address = 0.0.0.0

Das hat bei mir nicht geklappt. Ich habe auch versucht, ein bisschen wie folgt zu spielen:

bind-address = 10.0.2.2

Aber das hat auch bei mir nicht geklappt - Server konnte einfach nicht starten.

Irgendwelche Ideen, wo ich mich irre?

AKTUALISIEREN. Ich habe keine Berechtigungen überprüft, root@%wie in Wie ändere ich die Berechtigungen für MySQL-Benutzer, die bereits erstellt wurden?

Gelöst.

Trotz
quelle
Welche Benutzerkonten haben Sie in MySQL erstellt?
Shane Madden
Mein Konto ist root:root. Ich bezweifle, dass das Problem in den Logins liegt, sonst würde die Fehlermeldung etwas Lile Access denied for [email protected]oder etwas bedeuten .
Trotz
@ ShaneMadden Entschuldigung. Du hattest ziemlich recht. Die Sache war in Privilegien für root@%. Ziemlich meine Schuld.
Verteidigung

Antworten:

37

Sind Sie sicher, dass Sie dem lokalen Host des Root-Kontos in den meisten Standardinstallationen die Anmeldung vom anderen System aus erlaubt haben? Aus dem MySQL-Referenzhandbuch :

Dies bedeutet, dass die Benutzertabelle keine Zeile mit einem Host-Wert enthält, der mit dem Client-Host übereinstimmt

Also gibt es überhaupt keine %oder 10.0.2.2in der HostSpalte. Überprüfen Sie Ihre aktuelle Konfiguration:

select user,host from mysql.user where user='root';

Sie möchten wahrscheinlich einen neuen Stammeintrag mit demselben Kennwort wie jetzt erstellen.

create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;
Shane Madden
quelle
1
Ja. Vielen Dank. Ich habe es auch erst vor einem Moment gelöst, wie du hier angegeben hast. Das war genau mein Problem.
Trotz
1
Die Antwort von Shane ist richtig und kann mit einem einzigen Befehl ausgeführt werden. mysql -e "create user 'root'@'10.0.2.2' identified by 'yourpassword'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
Dies