2012-10-23 15 views
5

Quando provo a collegarmi a un database mysql locale usando il suo indirizzo ip remoto ottengo un accesso negato. Quando provo a connettermi allo stesso database da una macchina esterna, funziona senza problemi. Quando mi collego al database locale usando localhost, funziona perfettamente pure. Per esempio, se il server di database ha l'ip 1.2.3.4 allora io ottenere i seguenti risultati:mysql: connessione rifiutata quando si tenta di connettersi a localhost usando IP remoto

# From the db server 
mysql -u username -h localhost -p #works perfectly 
mysql -u username -h 127.0.0.1 -p #works perfectly 
mysql -u username -h 1.2.3.4 -p #Access denied 

# From any other machine 
mysql -u username -h 1.2.3.4 -p #works perfectly 

Cosa posso fare per consentire l'accesso locale al mio database utilizzando il suo indirizzo IP a distanza? Il sistema operativo del server database è Fedora 15 e la versione MySQL è 5.5.23.

+0

Stai utilizzando un firewall? Quali sono le impostazioni del firewall? –

+1

"Connessione rifiutata" suggerimenti alle impostazioni di rete. Se mysql nega l'accesso, lo dice così: "ERRORE 1130 (HY000): l'host '1.2.3.4' non può connettersi a questo server MySQL" –

+0

@Justin ᚅᚔᚈᚄᚒᚔ - Sto eseguendo ip-tables, ma nient'altro. @Olaf - Mi dispiace, ho fatto un errore: ho ricevuto "ERRORE 1045 (28000): accesso negato", non la connessione rifiutata. – Tiddo

risposta

1

ho trovato la soluzione al mio problema me stesso, ma io ancora non capisco il motivo per cui non ha funzionato:

ho concesso i privilegi di quell'utente sul host% e localhost:

# Before 
+-----------------+------------+ 
| Host   | User  | 
+-----------------+------------+ 
| %    | username | 
| localhost  | username | 
+-----------------+------------+ 

Con queste impostazioni ho ottenuto i risultati che ho mostrato sopra. Quando ho concesso i privilegi a quell'utente sull'host, improvvisamente ha funzionato.

# After 
+-----------------+------------+ 
| Host   | User  | 
+-----------------+------------+ 
| %    | username | 
| localhost  | username | 
| <myIpAddress> | username | 
+-----------------+------------+ 

Apparentemente% funziona per le connessioni remote, ma non per le connessioni locali.

0

Questo particolare problema può essere causato dalla risoluzione del nome host.

ho risolto nel mio caso particolare, cancellando questa variabile dal mio my.cnf file di configurazione:

saltare-nome-risolvere

O notare la variabile mettendo un cancelletto # o semplicemente cancellalo dal tuo my.cnf dopo esserti assicurato di eseguirne il backup, ovviamente.

Problemi correlati