2010-07-15 17 views
6

Sto provando a collegarmi al mio database mysql su un server remoto (via ssh) tramite il comando:MySQL permesso negato dal locale, ma in grado di connettersi in remoto

mysql -u me -h mydomain.com -p 

Ma non riesce con un errore 1045 (28000) : Accesso negato per l'utente .. errore

Mentre

mysql -u me -h localhost -p 

Opere

Ora questo non è solo perché non ho impostato le autorizzazioni, perché le autorizzazioni per questo database sono impostate per% o qualsiasi host per l'utente me.

Ciò è dimostrato dal fatto che posso connettermi correttamente dalla mia macchina locale al server, utilizzando lo stesso utente. cioè eseguendo il comando seguente dalla mia macchina locale funziona:

mysql -u me -h mydomain.com -p 

Quindi la mia domanda perché questo accade e come posso risolvere il problema? Perché non posso connettermi al mio server mysql dal mio server quando utilizzo il nome del dominio invece di localhost, anche se le autorizzazioni sono configurate per accettare connessioni da qualsiasi host.

risposta

16

Questo succede a causa del modo in cui MySQL gestisce i permessi di autorizzazione.

Quando ci si connette da un host remoto (o dall'host locale tramite un IP esterno), che corrisponderà al [email protected]% ingresso (se non v'è alcuna sovvenzione specifica per il particolare host che si sta utilizzando!). Ma quando ci si connette tramite l'interfaccia di loopback (l'IP "localhost") o un socket, verrà utilizzata la sovvenzione [email protected]. Quindi devi avere due GRANT PRIVILEGES; uno per [email protected] e uno per [email protected]%.

Problemi correlati