SYSADMIN JOURNAL / Linux · Networking · Security · HostingProcedure, appunti e soluzioni tecniche
Linux

MariaDB e ISPConfig: root funziona via socket ma fallisce su 127.0.0.1

Pubblicato il 12/11/2026

Guida basata su un intervento sistemistico concluso e verificato. Diagnosi di un problema reale di autenticazione dopo una migrazione MySQL: accesso root tramite socket Unix riuscito, connessione TCP rifiutata.

Il sintomo

Dopo il passaggio da MySQL a MariaDB, il comando amministrativo locale funzionava attraverso il socket Unix, ma un'applicazione che tentava di connettersi a 127.0.0.1 riceveva errore di autenticazione. Il database era attivo: non si trattava di un problema di rete o di una porta chiusa.

Perché localhost non coincide sempre con 127.0.0.1

Il client MySQL/MariaDB su Unix può interpretare localhost come socket locale, mentre 127.0.0.1 forza TCP. L'account 'root'@'localhost' può usare il plugin unix_socket, che autentica l'utente di sistema senza una password SQL, ma un client TCP non presenta la stessa identità.

Test mirati

mariadb --protocol=SOCKET -uroot -e "SELECT CURRENT_USER();"
mariadb --protocol=TCP -h127.0.0.1 -uroot -p -e "SELECT CURRENT_USER();"
mariadb -e "SHOW CREATE USER 'root'@'localhost'\G"
mariadb -e "SELECT User,Host,plugin FROM mysql.user WHERE User='root';"

Non assumere che ogni applicazione debba accedere come root: per servizi web è preferibile un account dedicato con privilegi limitati.

Correzione adottata nel caso

La soluzione è stata mantenere disponibile l’autenticazione tramite unix_socket e aggiungere, dove strettamente necessario per la compatibilità, il metodo mysql_native_password con una password robusta custodita fuori dallo script:

-- ESEMPIO: sostituire la password tramite canale sicuro
ALTER USER 'root'@'localhost'
  IDENTIFIED VIA mysql_native_password USING PASSWORD('PASSWORD_FORTE_DA_GENERARE')
  OR unix_socket;
FLUSH PRIVILEGES;

La sintassi dipende dalla versione MariaDB. Prima di applicarla verificare SELECT VERSION() e conservare un metodo amministrativo di recupero. Non usare mai una password reale in un articolo, nella history della shell o in un repository.

Verifica finale

Ripetere i test sia attraverso il socket sia su TCP; quindi verificare che ISPConfig riesca a eseguire le operazioni necessarie e che le applicazioni non abbiano acquisito privilegi non richiesti. Nel caso trattato il problema era coerente con il plugin di autenticazione, non con HAProxy o con il server SQL stesso.

Alternativa più sicura

Quando possibile, configurare ISPConfig e gli strumenti amministrativi con il socket o con un utente dedicato, evitando l'accesso TCP di root. La modifica del metodo di autenticazione va considerata una misura di compatibilità, non una raccomandazione universale.

Guide correlate

I comandi con nomi segnaposto vanno adattati al proprio ambiente. Le configurazioni di produzione, gli IP e le credenziali non sono riportati.