Access denied a MySQL da Spring Boot su server Plesk

Supponete di avere un server Linux su cui risiede la vostra applicazione web e che questo sia gestito da Plesk. Si tratta di una situazione abbastanza comune nel caso in cui abbiate – ad esempio – scritto una vostra applicazione web in PHP per poi installarla su un server in cloud.

Supponete inoltre di aver creato i database con l’interfaccia di Plesk e di aver creato un’utenza del database, ad es. username “app”, ad uso e consumo dell’applicativo e con i corretti permessi.

Tutto in PHP funzionerà senza problemi, ma se tenterete di rilasciare un’app Spring Boot sullo stesso server e di farla accedere allo stesso db potrete ottenere l’errore Access denied for user ‘app’@’127.0.0.1’. Che fare?

Motivo e soluzione dell’errore

Il motivo dell’errore sta nel fatto che Spring Boot effettua la connessione con app@127.0.0.1 anzichè con app@localhost, mentre Plesk – di default – crea i permessi solo per l’utente app@localhost.

Non ho trovato un sistema per “forzare” Spring a collegarsi con app@localhost ma è possibile fare il contrario, ovvero creare i permessi in Plesk per app@127.0.0.1. Come?

All’interno di Plesk, bisogna portarsi in Databases (menu a sinistra) quindi User management (in alto a destra); quindi selezionare l’utente desiderato (ad es. app), spuntare la casella Allow remote connections from e inserire nel box sottostante l’indirizzo 127.0.0.1; infine salvare le nuove impostazioni con OK o Apply.

E’ vero, 127.0.0.1 non è affatto una “remote connection”, ma con questo sistema obbligheremo Plesk a creare il relativo utente e la nostra app Spring funzionerà all’istante.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *