Mysql
 sql >> Database >  >> RDS >> Mysql

L'host 'xxx.xx.xxx.xxx' non può connettersi a questo server MySQL

Forse una precauzione di sicurezza. Potresti provare ad aggiungere un nuovo account amministratore:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

Anche se, come hanno notato Pascal e altri, non è una buona idea avere un utente con questo tipo di accesso aperto a qualsiasi IP. Se hai bisogno di un utente amministrativo, usa root e lascialo su localhost. Per qualsiasi altra azione specifica esattamente i privilegi di cui hai bisogno e limita l'accessibilità dell'utente come suggerisce Pascal di seguito.

Modifica:

Dalle domande frequenti su MySQL:

Se non riesci a capire il motivo per cui getAccess è stato negato, rimuovi dalla tabella utente tutte le voci che hanno valori Host contenenti caratteri jolly (voci che contengono caratteri '%' o '_'). Un errore molto comune è inserire una nuova voce con Host='%' andUser='some_user', pensando che questo ti permetta di specificare localhost per connetterti dalla stessa macchina. Il motivo per cui questo non funziona è che i privilegi predefiniti includono una voce con Host='localhost' eUser=''. Poiché quella voce ha un valore Host 'localhost' che è più specifico di '%', viene utilizzato in preferenza per la nuova voce quando ci si connette da localhost! La procedura corretta consiste nell'inserire una seconda voce con Host='localhost' e User='some_user', oppure nell'eliminare la voce con Host='localhost' e User=''. Dopo aver eliminato la voce, ricordarsi di emettere un'istruzione FLUSH PRIVILEGES per ricaricare le tabelle delle sovvenzioni. Vedere anche Sezione 5.4.4, «AccessControl, Fase 1:ConnectionVerification».