Accesso al server MySQL tramite VirtualBox


20

Sto cercando di ottenere il server MySQL (che si trova all'interno della VM) per rispondere al client (che si trova sulla macchina host). Tutti i metodi restituiscono lo stesso:

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

Ho assicurato il corretto port forwardind. Ho anche assicurato che in my.cnfho linee folowing:

skip-external-locking
bind-address = 0.0.0.0

Questo non ha funzionato per me. Ho anche provato a giocare un po 'come folowing:

bind-address = 10.0.2.2

Ma anche questo non ha funzionato per me - il server non è stato in grado di avviarsi.

Qualche idea, dove sbaglio?

AGGIORNARE. Non ho controllato i privilegi per root@%come in Come posso modificare i privilegi per l'utente MySQL che è già stato creato?

RISOLTO.


Quali account utente hai creato in MySQL?
Shane Madden

Il mio accout è root:root. Dubito che il problema sia negli accessi, altrimenti un messaggio di errore indicherà qualcosa di lile Access denied for root@10.0.2.2o qualcosa.
difesa

@ShaneMadden Siamo spiacenti. Avevi ragione. La cosa era privilegiata per root@%. Piuttosto colpa mia.
difesa

Risposte:


37

Solo localhost dell'account root nella stragrande maggioranza delle installazioni predefinite, sei sicuro di averlo autorizzato ad accedere dall'altro sistema? Dal manuale di riferimento di MySQL :

significa che non esiste alcuna riga nella tabella utente con un valore Host corrispondente all'host client

Quindi, non c'è %o 10.0.2.2nella Hostcolonna. Controlla la tua configurazione attuale:

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

Probabilmente vuoi creare una nuova voce di root con la stessa password che hai adesso.

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;

1
Sì. Grazie. L'ho anche risolto solo un momento fa, come hai affermato qui. Quello era esattamente il mio problema.
difesa

1
La risposta di Shane è corretta e può essere eseguita con un solo comando, utile se stai usando qualcosa come uno script Ansible / Vagrant per automatizzare: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;"
KayakinKoder
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.